[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-ia64-devel] pickled code
Isaku Yamahata wrote: Hi Jes. It tries to keep struct page_info compact layout by avoiding padding before _domain member. Please notice u32 count_info member in front of _domain. struct domain is allocated from xen heap, i.e. the range [PAGE_OFFSET, PAGE_OFFSET + 64MB). It means that struct domain* can be expressed as PAGE_OFFSET + 32bit offset(=machine phsyiacal address). > pickle PAGE_OFFSET + 32bit offset => 32 bit offset i.e. discarding most significant 32bit. It can be don by casting u64 to u32 because Xen assumes little endian. Hi Isaku The problem is that the theory that one can discard the top 32 bit from the physical address is flawed. Some machines, like SN2 have a memory layout which makes this impossible to do. Ie. our physical memory starts at 0x3003000000 (think I got the zeros right), there is no memory at all below 4GB. I am not sure how to solve this correctly, and I understand that my patch broke the kernel for Masaki too, but the existing code is broken by design, so we need to try and come up with something else - maybe we can do a pickle function based on a dynamic mask, ie. not use PAGE_OFFSET, but rather xen_heap_base or something like that? Best regards, Jes _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |