[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] ERST problems
Hello, When debugging ERST boot time hangs, the following debugging proved interesting >From a Dell Poweredge 2950 with latest BIOS: (XEN) Enabling APIC mode: Flat. Using 1 I/O APICs (XEN) ACPI: HPET id: 0x8086a201 base: 0xfed00000 (XEN) erst_init() (XEN) Found ERST (XEN) ERST is good (XEN) About to exec ctx_init() (XEN) About to exec pre map (XEN) Starting apei_exec_for_each_entry(). ctx->entries = 15 (XEN) .. i = 0, entry = 0xffff82c3ffd7ab48, ins = 0x3 (XEN) .. i = 1, entry = 0xffff82c3ffd7ab68, ins = 0x3 (XEN) .. i = 2, entry = 0xffff82c3ffd7ab88, ins = 0x3 (XEN) .. i = 3, entry = 0xffff82c3ffd7aba8, ins = 0x3 (XEN) .. i = 4, entry = 0xffff82c3ffd7abc8, ins = 0x2 (XEN) .. i = 5, entry = 0xffff82c3ffd7abe8, ins = 0x3 (XEN) .. i = 6, entry = 0xffff82c3ffd7ac08, ins = 0x3 (XEN) .. i = 7, entry = 0xffff82c3ffd7ac28, ins = 0x3 (XEN) .. i = 8, entry = 0xffff82c3ffd7ac48, ins = 0x1 (XEN) .. i = 9, entry = 0xffff82c3ffd7ac68, ins = 0x0 (XEN) .. i = 10, entry = 0xffff82c3ffd7ac88, ins = 0x0 (XEN) .. i = 11, entry = 0xffff82c3ffd7aca8, ins = 0x2 (XEN) .. i = 12, entry = 0xffff82c3ffd7acc8, ins = 0x0 (XEN) .. i = 13, entry = 0xffff82c3ffd7ace8, ins = 0x3 (XEN) .. i = 14, entry = 0xffff82c3ffd7ad08, ins = 0x3 (XEN) About to get range (XEN) in erst_get_erange() (XEN) range->base = 0xffff83007fb4f0a0 (XEN) range->size = 0xffff83007fb4f0a0 (XEN) range->attr = 0x7fb4f0a0 (XEN) About to pre map (0xffff83007fb4f0a0, 0xffff83007fb4f0a0) (XEN) Error -12, about to unmap gars (XEN) Starting apei_exec_for_each_entry(). ctx->entries = 15 (XEN) .. i = 0, entry = 0xffff82c3ffd7ab48, ins = 0x3 (XEN) apei_post_unmap_gar(0xffff82c3ffd7ab4c)... . aok (XEN) .. i = 1, entry = 0xffff82c3ffd7ab68, ins = 0x3 (XEN) apei_post_unmap_gar(0xffff82c3ffd7ab6c)... . aok (XEN) .. i = 2, entry = 0xffff82c3ffd7ab88, ins = 0x3 (XEN) apei_post_unmap_gar(0xffff82c3ffd7ab8c)... . The hang at this point turns out to be trivial mis-locking issue, and I have submitted a patch to fix it. However, this debugging shows that erst_get_erange() is clearly returning junk, causing apei_pre_map() to fail. While in this case it is easy to identify the junk size parameter as it is far greater than the system RAM (32G), I am not sure this is necessarily the best approach to try and validate the information. Is there anything else we could sensibly do? At the very least, erst_init() should not silently ignore its failures. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |