WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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