[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] ERST problems



On 21/03/13 23:22, Andrew Cooper wrote:
> 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

In case you are wondering, attached is the complete acpidump from the
server in question, and I have pre-extracted the ERST and EINJ tables.

~Andrew

Attachment: dell-poweredge-2950.tar.gz
Description: GNU Zip compressed data

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.