Norbert Trapp | 22 Jun 2012 17:50

[PATCH 3/3] makedumpfile: Xen4: exclude Xen user domain pages for Xen4

use a faster way to go through the page table for determining the
domU pages and add 1GB page discovery. Cannot use info->dom0_mapnr
because max_pfn symbol is not in kcore note. Add exclude_xen4_user_domain
function in makedumpfile.c with lots of DEBUG_MSG calls for testing.

Signed-off-by: Norbert Trapp <norbert.trapp@...>
---
 arch/x86_64.c  |  139 +++++++++++++++++++++--------
 makedumpfile.c |  272 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 371 insertions(+), 40 deletions(-)

diff --git a/arch/x86_64.c b/arch/x86_64.c
index da61fd8..a44da09 100644
--- a/arch/x86_64.c
+++ b/arch/x86_64.c
 <at>  <at>  -329,61 +329,108  <at>  <at>  is_direct(unsigned long kvaddr, unsigned long long *entry)
 /*
  * for Xen extraction
  */
+char *pml4_page;
+char *pgd_page;
+char *pmd_page;
+char *pte_page;
+
+int pml4_page_read = 0;
+unsigned long long last_pgd_read = 0;
+unsigned long long last_pmd_read = 0;
+unsigned long long last_pte_read = 0;
+
 unsigned long long
(Continue reading)

Petr Tesarik | 24 Jul 2012 23:28
Picon

Re: [PATCH 3/3] makedumpfile: Xen4: exclude Xen user domain pages for Xen4

This patch should probably be broken into two pieces - one that fixes Xen4 
walk and one that optimizes the kvtop routine, because these are two 
independent improvements, IMO.

Anyway, see my comments below.

Dne Pá 22. června 2012 17:50:37 Norbert Trapp napsal(a):
> use a faster way to go through the page table for determining the
> domU pages and add 1GB page discovery. Cannot use info->dom0_mapnr
> because max_pfn symbol is not in kcore note. Add exclude_xen4_user_domain
> function in makedumpfile.c with lots of DEBUG_MSG calls for testing.
> 
> Signed-off-by: Norbert Trapp <norbert.trapp <at> ts.fujitsu.com>
> ---
>  arch/x86_64.c  |  139 +++++++++++++++++++++--------
>  makedumpfile.c |  272
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed,
> 371 insertions(+), 40 deletions(-)
> 
> diff --git a/arch/x86_64.c b/arch/x86_64.c
> index da61fd8..a44da09 100644
> --- a/arch/x86_64.c
> +++ b/arch/x86_64.c
>  <at>  <at>  -329,61 +329,108  <at>  <at>  is_direct(unsigned long kvaddr, unsigned long long
> *entry) /*
>   * for Xen extraction
>   */
> +char *pml4_page;
> +char *pgd_page;
> +char *pmd_page;
(Continue reading)


Gmane