xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* ERST problems
@ 2013-03-21 23:22 Andrew Cooper
  2013-03-21 23:46 ` Andrew Cooper
  2013-03-22  9:07 ` Jan Beulich
  0 siblings, 2 replies; 7+ messages in thread
From: Andrew Cooper @ 2013-03-21 23:22 UTC (permalink / raw)
  To: Xen-devel List, Jan Beulich, Keir Fraser

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-03-22 11:54 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-21 23:22 ERST problems Andrew Cooper
2013-03-21 23:46 ` Andrew Cooper
2013-03-22  9:07 ` Jan Beulich
2013-03-22  9:14   ` [PATCH] ACPI, APEI: Add apei_exec_run_optional Jan Beulich
2013-03-22 11:27     ` Andrew Cooper
2013-03-22 11:45       ` Jan Beulich
2013-03-22 11:54         ` Andrew Cooper

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).