[PATCH v2 3/7] xen: Take into account new frame table address since Xen 4.3

Atsushi Kumagai kumagai-atsushi at mxc.nes.nec.co.jp
Thu Jul 18 04:03:29 EDT 2013


On Tue, 16 Jul 2013 14:32:05 +0200
Daniel Kiper <daniel.kiper at oracle.com> wrote:

> Since Xen commit a8d2b06db7826063df9d04be9d6f928bf2189bd0
> (x86: extend frame table virtual space) frame table has
> new address. Take into account that thing.
> 
> Signed-off-by: Daniel Kiper <daniel.kiper at oracle.com>

OK, I'll merge this patch into v1.5.5.


Thanks
Atsushi Kumagai

> ---
>  arch/x86_64.c  |   11 +++++++++--
>  makedumpfile.h |   21 +++++++++++----------
>  2 files changed, 20 insertions(+), 12 deletions(-)
> 
> diff --git a/arch/x86_64.c b/arch/x86_64.c
> index d864a06..771d457 100644
> --- a/arch/x86_64.c
> +++ b/arch/x86_64.c
> @@ -401,8 +401,15 @@ int get_xen_basic_info_x86_64(void)
>  			return FALSE;
>  		}
>  		info->frame_table_vaddr = frame_table_vaddr;
> -	} else
> -		info->frame_table_vaddr = FRAMETABLE_VIRT_START;
> +	} else {
> +		if (info->xen_crash_info.com &&
> +		    ((info->xen_crash_info.com->xen_major_version == 4 &&
> +		      info->xen_crash_info.com->xen_minor_version >= 3) ||
> +		      info->xen_crash_info.com->xen_major_version > 4))
> +			info->frame_table_vaddr = FRAMETABLE_VIRT_START_V4_3;
> +		else
> +			info->frame_table_vaddr = FRAMETABLE_VIRT_START_V3;
> +	}
>  
>  	if (!info->xen_crash_info.com ||
>  	    info->xen_crash_info.com->xen_major_version < 4) {
> diff --git a/makedumpfile.h b/makedumpfile.h
> index 1a87500..1789a11 100644
> --- a/makedumpfile.h
> +++ b/makedumpfile.h
> @@ -1466,16 +1466,17 @@ int get_xen_info_x86(void);
>  #define ENTRY_MASK		(~0xfff0000000000fffULL)
>  #define MAX_X86_64_FRAMES	(info->page_size / sizeof(unsigned long))
>  
> -#define PAGE_OFFSET_XEN_DOM0  (0xffff880000000000) /* different from linux */
> -#define HYPERVISOR_VIRT_START (0xffff800000000000)
> -#define HYPERVISOR_VIRT_END   (0xffff880000000000)
> -#define DIRECTMAP_VIRT_START  (0xffff830000000000)
> -#define DIRECTMAP_VIRT_END_V3 (0xffff840000000000)
> -#define DIRECTMAP_VIRT_END_V4 (0xffff880000000000)
> -#define DIRECTMAP_VIRT_END    (info->directmap_virt_end)
> -#define XEN_VIRT_START        (info->xen_virt_start)
> -#define XEN_VIRT_END          (XEN_VIRT_START + (1UL << 30))
> -#define FRAMETABLE_VIRT_START 0xffff82f600000000
> +#define PAGE_OFFSET_XEN_DOM0		(0xffff880000000000) /* different from linux */
> +#define HYPERVISOR_VIRT_START		(0xffff800000000000)
> +#define HYPERVISOR_VIRT_END		(0xffff880000000000)
> +#define DIRECTMAP_VIRT_START		(0xffff830000000000)
> +#define DIRECTMAP_VIRT_END_V3		(0xffff840000000000)
> +#define DIRECTMAP_VIRT_END_V4		(0xffff880000000000)
> +#define DIRECTMAP_VIRT_END		(info->directmap_virt_end)
> +#define XEN_VIRT_START			(info->xen_virt_start)
> +#define XEN_VIRT_END			(XEN_VIRT_START + (1UL << 30))
> +#define FRAMETABLE_VIRT_START_V3	0xffff82f600000000
> +#define FRAMETABLE_VIRT_START_V4_3	0xffff82e000000000
>  
>  #define is_xen_vaddr(x) \
>  	((x) >= HYPERVISOR_VIRT_START && (x) < HYPERVISOR_VIRT_END)
> -- 
> 1.7.10.4
>



More information about the kexec mailing list