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

Re: [Xen-devel] Problem with BIOS timer interrupts


  • To: Gary Grebus <ggrebus@xxxxxxxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
  • Date: Tue, 18 Nov 2008 20:02:18 +0000
  • Cc:
  • Delivery-date: Tue, 18 Nov 2008 12:02:41 -0800
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AclJuI8TzV+3JrWrEd2gCwAWy6hiGQ==
  • Thread-topic: [Xen-devel] Problem with BIOS timer interrupts

On 18/11/08 18:50, "Gary Grebus" <ggrebus@xxxxxxxxxxxxxxx> wrote:

> It uses this to timeout waiting for a key press.  The expected interrupt
> is from the BIOS timer implemented in rombios.  But in fact, the loop
> hangs.  However, if I insert a nop instruction between the sti and hlt,
> then things work as expected.
> 
> Is there something wrong with this sequence?  This happens on AMD, so
> it's not a quirk of the real mode emulations on Intel.
> 
> I notice that in the gPXE code currently in xen-unstable, the path that
> uses this code is patched out.

As a data point, I commented it out because the delay's annoying rather than
because it caused a boot hang for me. I was testing on Intel though.

Inserting the nop is obviously bogus (I expect you're aware of that :-),
since it raises the opportunity of a wakeup-waiting race. That it fixes this
issue is very weird. I expect we have some issue to do with leaving an
interrupt shadow during HLT emulation -- why this would only trigger in real
mode I cannot guess.

Wei's erratum is not applicable, for three reasons:
 1. We disable C1 clock ramping
 2. We always intercept HLT
 3. STI; HLT is a standard x86 idiom used in all OSes, and this is the only
place we're seeing a problem. Also the erratum would lead to rare
non-deterministic hangs, not a hang every time (which is what you're
seeing?).

I would say it's a good idea to see if you can repro this on xen-unstable.

 -- Keir



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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