[Crash-utility] Implement end_pfn -> max_pfn change for Xen dumps

Dave Anderson anderson at redhat.com
Wed Nov 26 20:39:45 UTC 2008


Bernhard Walle wrote:
> This patch reflects the change from end_pfn to max_pfn in x86_64
> mainline between 2.6.26 and 2.6.27 that already has been partitially
> implemented in x86_64_init(PRE_GDB):
> 
>  ...
> 
>         if (kernel_symbol_exists("end_pfn"))
>                 /* 2.6.11 layout */
>                 machdep->machspec->page_offset = PAGE_OFFSET_2_6_11;
>         else
>                 /* 2.6.27 layout */
>                 machdep->machspec->page_offset = PAGE_OFFSET_2_6_27;
>  ...
> 
> also for Xen Dom0 dumps (not in HV mode).
> 
> 
> Signed-off-by: Bernhard Walle <bwalle at suse.de>
> 
> ---
>  kernel.c |   10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> --- a/kernel.c
> +++ b/kernel.c
> @@ -102,8 +102,14 @@ kernel_init()
>  		}
>  		if (machine_type("X86"))
>                  	get_symbol_data("max_pfn", sizeof(ulong), &kt->p2m_table_size);
> -		if (machine_type("X86_64"))
> -                	get_symbol_data("end_pfn", sizeof(ulong), &kt->p2m_table_size);
> +		if (machine_type("X86_64")) {
> +			/*
> +			 * kernel version <  2.6.27 => end_pfn
> +			 * kernel version >= 2.6.27 => max_pfn
> +			 */
> +			if (!try_get_symbol_data("end_pfn", sizeof(ulong), &kt->p2m_table_size))
> +				get_symbol_data("max_pfn", sizeof(ulong), &kt->p2m_table_size);
> +		}
>                  if ((kt->m2p_page = (char *)malloc(PAGESIZE())) == NULL)
>                         	error(FATAL, "cannot malloc m2p page.");
>  	}
> 

Looks good -- queued for the next release.

Thanks,
   Dave





More information about the Crash-utility mailing list