Daniel Kiper
2013-Mar-15 15:09 UTC
[PATCH 1/2] xen: Improve calculation of beginning of virtual address space
Xen changeset 26447 (x86: re-introduce map_domain_page() et al) once again altered virtual address space. Current algorithm calculating its start could not cope with that change. New version establishes this value on the base of image start address and is more generic. Signed-off-by: Daniel Kiper <daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> diff -Npru crash-6.1.4.orig/xen_hyper.c crash-6.1.4/xen_hyper.c --- crash-6.1.4.orig/xen_hyper.c 2013-02-14 21:38:54.000000000 +0100 +++ crash-6.1.4/xen_hyper.c 2013-03-15 13:11:16.595713662 +0100 @@ -43,10 +43,14 @@ xen_hyper_init(void) #endif #ifdef X86_64 - if (xen_major_version() >= 4) - xht->xen_virt_start = 0xffff82c480000000; - else - xht->xen_virt_start = 0xffff828c80000000; + xht->xen_virt_start = symbol_value("start"); + + /* + * Xen virtual mapping is aligned to 1 GiB boundary. + * Image starts no more than 1 GiB below + * beginning of virtual address space. + */ + xht->xen_virt_start &= 0xffffffffc0000000; #endif if (machine_type("X86_64") &&
Konrad Rzeszutek Wilk
2013-Mar-15 16:56 UTC
Re: [Xen-devel] [PATCH 1/2] xen: Improve calculation of beginning of virtual address space
On Fri, Mar 15, 2013 at 04:09:21PM +0100, Daniel Kiper wrote:> Xen changeset 26447 (x86: re-introduce map_domain_page() et al) once again > altered virtual address space. Current algorithm calculating its start could > not cope with that change. New version establishes this value on the base of > image start address and is more generic.And it works with the older (3.4) hypervisors binary image?> > Signed-off-by: Daniel Kiper <daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> > > diff -Npru crash-6.1.4.orig/xen_hyper.c crash-6.1.4/xen_hyper.c > --- crash-6.1.4.orig/xen_hyper.c 2013-02-14 21:38:54.000000000 +0100 > +++ crash-6.1.4/xen_hyper.c 2013-03-15 13:11:16.595713662 +0100 > @@ -43,10 +43,14 @@ xen_hyper_init(void) > #endif > > #ifdef X86_64 > - if (xen_major_version() >= 4) > - xht->xen_virt_start = 0xffff82c480000000; > - else > - xht->xen_virt_start = 0xffff828c80000000; > + xht->xen_virt_start = symbol_value("start"); > + > + /* > + * Xen virtual mapping is aligned to 1 GiB boundary. > + * Image starts no more than 1 GiB below > + * beginning of virtual address space. > + */ > + xht->xen_virt_start &= 0xffffffffc0000000; > #endif > > if (machine_type("X86_64") && > > _______________________________________________ > Xen-devel mailing list > Xen-devel-GuqFBffKawuEi8DpZVb4nw@public.gmane.org > http://lists.xen.org/xen-devel >
Daniel Kiper
2013-Mar-15 17:15 UTC
Re: [Xen-devel] [PATCH 1/2] xen: Improve calculation of beginning of virtual address space
On Fri, Mar 15, 2013 at 12:56:36PM -0400, Konrad Rzeszutek Wilk wrote:> On Fri, Mar 15, 2013 at 04:09:21PM +0100, Daniel Kiper wrote: > > Xen changeset 26447 (x86: re-introduce map_domain_page() et al) once again > > altered virtual address space. Current algorithm calculating its start could > > not cope with that change. New version establishes this value on the base of > > image start address and is more generic. > > And it works with the older (3.4) hypervisors binary image?It works without any issue. Daniel