| 
    
 [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Serial console hangs with Linux 2.6.20 HVM guest
 Anders Kaseorg writes ("Re: [Xen-devel] Serial console hangs with Linux 2.6.20 
HVM guest"):
> In case this is more interesting, here is a log of all the breakpoints
> hit during a Linux boot, up to the point where it hangs:
> 
> http://web.mit.edu/andersk/Public/xen-serial-log
Thanks, that's great.  But I think it's a kernel bug.  The last thing
the kernel does is read the IIR (Interrupt Identification Register)
twice at a time when the transmit FIFO is empty.  Reading the IIR is
(sadly) not a side-effect-free operation; specifically, it cancels any
outstanding transmit fifo/buffer empty interrupt[1].  So the first
time it gets told `Transmit Holding Register Empty interrupt', but
that has the effect of clearing the interrupt so the second time it
reads the IIRC it gets `no interrupt pending'.
[1] I'm getting this out of the National Semiconductor datasheet for
the PC16550D, document number TL/C/8652, June 1995.  See for example
section 8.11 `FIFO Interrupt Mode Operation' item A:
   The transmit holding register interrupt (02) occurs when
   the XMIT FIFO is empty; it is cleared as soon as the transmitter
   holding register is written to ([...]) or the IIR is read.
As far as I can see qemu-dm is emulating this accurately.
Can you point me at the exact kernel source code you're using ?
Thanks,
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 
  | 
  
![]()  | 
            
         Lists.xenproject.org is hosted with RackSpace, monitoring our  |