[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] xen_phys_start for 32b
> From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx] > Sent: Wednesday, January 07, 2009 7:41 AM > > On 07/01/2009 15:13, "Cihula, Joseph" <joseph.cihula@xxxxxxxxx> wrote: > > >>> But shouldn't [xenheap_phys_start, xenheap_phys_end] represent all of the > >>> memory that the hypervisor "owns" and which must be protected from even > >>> privileged domain writes (modulo the real mode/trampoline code, which has > >>> its > >>> own variables that represent its range)? While it may be "OK" on 32b > >>> systems, > >>> it is not "logically correct" and does not match 64b systems (where this > >>> low > >>> memory is not so protected). Would it break anything to set > >>> xenheap_phys_start to __pa(&_start) for 32b builds? > >> > >> So what issue does this fix for you? > > > > It moves the '#ifdef __x86_64__' in a couple of places in an upcoming patch > > into just setup.c ;-) So practically speaking, it is not very important. > > But > > it seems like it would just be cleaner, today, to have this variable (and > > xen_phys_start?) be consistent across builds; and thus, usable with the > > intended meaning in the future. > > Xenheap will disappear entirely on x86/64 in future. So long term is that > i386 and x86/64 are actually to diverge significantly in this area. > > Of course I'll consider any patch on its own merits of usefulness and > cleanliness. OK, here is a very small and simple patch to "fix" this. Note that I used a new '#idef' instead of '#else' to the previous because this statement is logically distinct from the previous block and there is no difference in the generated code. ---------------- For IA32 builds, set xen_phys_start (and by extension, xenheap_phys_start) to be the physical address of the start of xen (instead of the previous value, 0). Signed-off-by: Joseph Cihula <joseph.cihula@xxxxxxxxx> diff -r e2f36d066b7b xen/arch/x86/setup.c --- a/xen/arch/x86/setup.c Mon Dec 22 13:48:40 2008 +0000 +++ b/xen/arch/x86/setup.c Wed Jan 07 09:19:58 2009 -0800 @@ -868,6 +868,9 @@ void __init __start_xen(unsigned long mb nr_pages += (__pa(&_start) - xen_phys_start) >> PAGE_SHIFT; vesa_init(); #endif +#ifndef __x86_64__ + xen_phys_start = __pa(&_start); +#endif xenheap_phys_start = xen_phys_start; printk("Xen heap: %luMB (%lukB)\n", nr_pages >> (20 - PAGE_SHIFT), _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |