[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Re: [Xen-users] Continuing BUG:-iness booting Fedora Rawhide 3.1.0-rc's (was Summary: Experiences setting up a debug serial port)
> [ 0.615589] usbcore: registered new interface driver hub > [ 0.615589] usbcore: registered new device driver usb > [ 0.615948] PCI: Using ACPI for IRQ routing > (XEN) mm.c:4976:d0 Global bit is set to kernel page fffff81b8e > (XEN) mm.c:4976:d0 Global bit is set to kernel page fffff81b8e > (XEN) mm.c:4976:d0 Global bit is set to kernel page fffff81118 > (XEN) mm.c:4976:d0 Global bit is set to kernel page fffff81117 > (XEN) domain_crash_sync called from entry.S > (XEN) Domain 0 (vcpu#0) crashed on cpu#0: > (XEN) ----[ Xen-4.1.1 x86_64 debug=n Not tainted ]---- > (XEN) CPU: 0 > (XEN) RIP: e033:[<ffffffff81118d96>] > (XEN) RFLAGS: 0000000000010282 EM: 0 CONTEXT: pv guest > (XEN) rax: 0000000000000080 rbx: ffff880163985480 rcx: 0000000000000040 > (XEN) rdx: 0040000000000080 rsi: ffff880163985480 rdi: ffff880163985480 > (XEN) rbp: ffff880163dfaff0 rsp: ffff880163dfafd0 r8: 0000001373ffffff > (XEN) r9: ffffffff81b8e7fd r10: 0000ffff00066c0a r11: 0000000080000000 > (XEN) r12: ffffffff81a1cbd0 r13: ffffffff81b8e7fd r14: 0000001000000000 > (XEN) r15: ffffffff81a1cbd0 cr0: 000000008005003b cr4: 00000000000026f0 > (XEN) cr3: 0000000221a05000 cr2: 000000137400002f > (XEN) ds: 0000 es: 0000 fs: 0000 gs: 0000 ss: e02b cs: e033 That is fixed in the latest Linus tree. You might need this patch as well: (also attached) commit e3b73c4a25e9a5705b4ef28b91676caf01f9bc9f Author: David Vrabel <david.vrabel@xxxxxxxxxx> Date: Tue Sep 13 10:17:32 2011 -0400 xen/e820: if there is no dom0_mem=, don't tweak extra_pages. The patch "xen: use maximum reservation to limit amount of usable RAM" (d312ae878b6aed3912e1acaaf5d0b2a9d08a4f11) breaks machines that do not use 'dom0_mem=' argument with: reserve RAM buffer: 000000133f2e2000 - 000000133fffffff (XEN) mm.c:4976:d0 Global bit is set to kernel page fffff8117e (XEN) domain_crash_sync called from entry.S (XEN) Domain 0 (vcpu#0) crashed on cpu#0: ... The reason being that the last E820 entry is created using the 'extra_pages' (which is based on how many pages have been freed). The mentioned git commit sets the initial value of 'extra_pages' using a hypercall which returns the number of pages (if dom0_mem has been used) or -1 otherwise. If the later we return with MAX_DOMAIN_PAGES as basis for calculation: return min(max_pages, MAX_DOMAIN_PAGES); and use it: extra_limit = xen_get_max_pages(); if (extra_limit >= max_pfn) extra_pages = extra_limit - max_pfn; else extra_pages = 0; which means we end up with extra_pages = 128GB in PFNs (33554432) - 8GB in PFNs (2097152, on this specific box, can be larger or smaller), and then we add that value to the E820 making it: Xen: 00000000ff000000 - 0000000100000000 (reserved) Xen: 0000000100000000 - 000000133f2e2000 (usable) which is clearly wrong. It should look as so: Xen: 00000000ff000000 - 0000000100000000 (reserved) Xen: 0000000100000000 - 000000027fbda000 (usable) Naturally this problem does not present itself if dom0_mem=max:X is used. CC: stable@xxxxxxxxxx Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c index ff3dfa1..09688eb 100644 --- a/arch/x86/xen/setup.c +++ b/arch/x86/xen/setup.c @@ -305,10 +305,12 @@ char * __init xen_memory_setup(void) sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); extra_limit = xen_get_max_pages(); - if (extra_limit >= max_pfn) - extra_pages = extra_limit - max_pfn; - else - extra_pages = 0; + if (max_pfn + extra_pages > extra_limit) { + if (extra_limit > max_pfn) + extra_pages = extra_limit - max_pfn; + else + extra_pages = 0; + } extra_pages += xen_return_unused_memory(xen_start_info->nr_pages, &e820); Attachment:
e3b73c4a25e9a5705b4ef28b91676caf01f9bc9f.patch _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |