xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Jan Beulich <JBeulich@novell.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
	xen-devel@lists.xensource.com, andrew.thomas@oracle.com,
	Ian Campbell <Ian.Campbell@eu.citrix.com>,
	keir.xen@gmail.com, swente@infinitumb.de,
	gianni.tedesco@citrix.com
Subject: Re: L1[0x1fb] = 0000000000000000 which faults on one type of machine but on another works?
Date: Thu, 17 Mar 2011 11:52:12 -0400	[thread overview]
Message-ID: <20110317155211.GA29603@dumpdata.com> (raw)
In-Reply-To: <4D81EF97020000780003706E@vpn.id2.novell.com>

On Thu, Mar 17, 2011 at 10:25:11AM +0000, Jan Beulich wrote:
> >>> On 16.03.11 at 23:19, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
> > But one thing I can't understand is why on one machine (IBM x3850)
> > I get this crash, while another one with the same pagetable contents
> > (L1 has nothing for 0x1fb) it works just fine? I added a panic and used
> > the Xen hypervisor kdb to manually inspect the pagetable, and it has
> > the same contents as the IBM x3850 -but it boots fine with this invalid 
> > value.
> > Any ideas?
> 
> Without seeing the full stack trace it's hard to tell. To me, it looks
> like a mistake for native_apic_read() to be called at all under Xen,
> and perhaps there's one lurking somewhere that gets hit only on
> those IBM (Summit?) machines.

That was it. When we bootup we call 'set_xen_basic_apic_ops' which
sets apic->read to xen_apic_read. The default 'apic' is set to
apic_flat, so in essence we change apic_flat->read from native_apic_read
to xen_apic_read.

During bootup, the default_acpi_madt_oem_check is run which
runs through all of the apic_probe[] array, on which the last
one is is apic_physflat. And apic_physflat->probe() returns true
on this IBM Summit box (and ES7000 boxs, and whatever has FADT
set to ACPI_FADT_APIC_PHYSICAL) so we set apic now to apic_physflat
and the apic->read ends up being native_apic_read.

2.6.38 fixes this by allowing in acpi_register_lapic_address, the
the set_fixmap_nocache(FIX_APIC_BASE, address) to be called and we
can provide it with a dummy page and native_apic_read can happily
read from that fake page.

  reply	other threads:[~2011-03-17 15:52 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-16 22:19 L1[0x1fb] = 0000000000000000 which faults on one type of machine but on another works? Konrad Rzeszutek Wilk
2011-03-16 22:32 ` Keir Fraser
2011-03-17 10:25 ` Jan Beulich
2011-03-17 15:52   ` Konrad Rzeszutek Wilk [this message]
2011-03-17 16:12     ` Konrad Rzeszutek Wilk
2011-03-17 16:12     ` Jan Beulich
2011-03-17 16:41       ` Konrad Rzeszutek Wilk
2011-03-17 17:21         ` Jeremy Fitzhardinge
2011-03-17 19:56         ` [PATCH] xen/apic: Provide an 'apic_xen' to set the override the apic->[read|write] for all cases Konrad Rzeszutek Wilk
2011-03-22 13:10 ` L1[0x1fb] = 0000000000000000 which faults on one type of machine but on another works? Gianni Tedesco

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110317155211.GA29603@dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=Ian.Campbell@eu.citrix.com \
    --cc=JBeulich@novell.com \
    --cc=andrew.thomas@oracle.com \
    --cc=gianni.tedesco@citrix.com \
    --cc=jeremy@goop.org \
    --cc=keir.xen@gmail.com \
    --cc=swente@infinitumb.de \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).