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

[Xen-devel] Re: dom0 serial input overruns

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Re: dom0 serial input overruns
From: Ferenc Wagner <wferi@xxxxxxx>
Date: Mon, 21 Mar 2011 17:32:07 +0100
Delivery-date: Mon, 21 Mar 2011 09:32:36 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20110320204321.GE3948@xxxxxxxxxxxx> (Konrad Rzeszutek Wilk's message of "Sun, 20 Mar 2011 16:43:21 -0400")
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <87zkoq6onj.fsf@xxxxxxxxxxxxx> <20110320204321.GE3948@xxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux)
Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> writes:

> On Sun, Mar 20, 2011 at 12:02:08PM +0100, Ferenc Wagner wrote:
> 
>> I'm running a HA Xen cluster, where the dom0s are crosslinked via a
>> null modem serial cable for heartbeat redundancy.  This works most of
>> the time, but the serial connection is very unreliable, dropping
>> characters all the time, with lot of messages like "ttyS0: 2 input
>> overrun(s)" in dmesg.
>
> If you use the hypervisor serial connection "console=com1 com1=11152..."
> and re-route the console output in Linux kernel to it (console=hvc0)
> does this problem disappear?

Hi,

That's indeed a valid point which I forgot to discuss above, sorry.  I
actually use the second serial port as Xen and Linux console:
"com2=auto,8n1 console=com2L,vga" on the Xen command line and
"console=hvc0 earlyprintk=xen" on the Linux command line.  The first
serial port is used by heartbeat (the software) as a safety (parallel)
communication channel in case of a network partition.  I'm not sure if
heartbeat would accept /dev/hvcX as a serial device, but even now the
Xen (and Linux) serial console is also lossy as hell (at 57600 baud, as
dictated by the DRAC management card in the machine and configured by
the boot loader).  However, this lossage isn't accompanied by any
warning.  I hope this answers your question.  I also run the exact same
hardware configuration without Xen, and the Linux console is perfectly
solid in that case (like it should under hardware flow control).  As an
illustration, here's the serial output of querying ioapic info on the
Xen console:

(XEN) number of MP IRQ sources: 16.
(XEN) number of IO-APIC #8 registers: 16.
(XEN) number of IO-APIC #9 registers: 16.
(XEN) number of IO-APIC #10 registers: 16.
(XEN) testing the IO APIC.......................
(XEN) IO APIC #8......
(XEN) .... register #00: 00000000
(XEN) .......    : physical APIC id: 00
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 00000000
(XEN) .......     : arbitration: 00
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 0FF 0F  1    0    0   0   0    0    0    F0
(XEN)  01 001 01  0    0    0   0   0    1    1    28
(XEN)  02 001 01  0    0    0   0   0    1    1    30
(XEN)  03 0FF 0F  0    0    0   0   0    1    1    F2
(XEN)  04 001 01  0    0    0   0   0    1    1    38
(XEN)  05 001 01  0    0    0   0   0    1    1    40
(XEN)  06 001 01  0    0    0   0   0    1    1    48
(XEN)  07 001 01  0    0    0   0   0    1    1    50
(XEN)  08 001 01  0    0    0   0   0    1    1    58
(XEN)  09 001 01  0    0    0   0   0    1    1    60
(XEN)  0a 001 01  0    0    0   0   0    1    1    68
(XEN)  0b 001 01  0    1    0   1   0    1    1    70
(XEN)  0c 001 01  0    0    0   0   0    1    1    78
(XEN)  0d 00F 0F  1    0    0   0   0    1    1    88
(XEN)  0e 001 01  0    0    0   0   0    1    1    90
(XEN)  0f 001 01  0    0    0   0   0    1    1    98
(XEN) IO APIC #9......
(XEN) .... register #00: 00000000
(XEN) .......    : physical APIC id: 00
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 000F0011
(XEN) .......     : max redirection entries: 000F
(XEN) .......     : PRQ implemented: 0
(XEN) .......     : IO APIC version: 0011
(XEN) .... register #02: 00000000
(XEN) .......     : arbitration: 00
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 000 00  1    0    0   0   0    0    0    00
(XEN)  02 000 00  1    0    0   0   0    0    0    00
(XEN)  03 000 00  1    0    0   0   0    0    0    00
(XEN)  04 000 00  1    0    0   0   0    0    0    00
(XEN)  05 000 00  1    0    0   0   0    0    0    00
(XEN)  06 000 00  1    0    0   0   0    0    0    00
(XEN)  07 00F 0F  1    1    0   1   0    1    1    A0
(XEN)  08 000 00  1    0    0   0   0    0    0    00
(XEN)  09 000 00  1    0    0   0   0    0    0    00
(XEN)  0a 000 00  1    0    0   0   0    0    0    00
(XEN)  0b 000 00  1    0    0   0   0    0    0    00
(XEN)  0c 001 01  0    1    0   1   0    1    1    A8
(XEN)  0d 001 01  0    1    0   1   0    1    1    B8
(XN)  0e 001 01     1    0   1  0   1    1    B0(XEN)  0f 001 0 0    1    0     
0    1    1  C0
(XEN) IO AP #10......
(XE .... register 0: 00000000
(X) .......    : ysical APIC id:0
(XEN) ......   : Delivery Te: 0
(XEN) .....    : LTS        : 0
(XEN) .. register #01000F0011
(XEN)......     : maredirection entes: 000F
XEN) .......   : IO APIC versi: 0011
(XEN) .. register #02:0000000
(XEN) .....     : arbration: 00
(XE .... IRQ redirtion table:
(X)  NR Log Phy Mk Trig IRR Pol at Dest Deli Ve:   
(XEN)  0000 00  1    0  0   0   0    0  0    00
(XEN)01 000 00  1       0   0   0  0    0    00
(N)  02 000 00     0    0   0      0    0    0
                                              (XEN)  03 000   1    0    0     0 
   0    0  00
(XEN)  04 0 00  1    0      0   0    0  0    00
(XEN) 5 000 00  1       0   0   0       0    00
(X)  06 000 00  1  0    0   0      0    0    00(XEN)  07 000 0 1    0    0     
0    0    0  00
(XEN)  08 0 00  1    0      0   0    0       00
(XEN)   000 00  1    0  0   0   0       0    00
XEN)  0b 000 001    0    0   0 0    0    0   00
(XEN)  0c 0000  1    0    0 0   0    0       00
(XEN)  0000 00  1    0  0   0   0    0  0    00
(XEN 0e 000 00  1  0    0   0   0  0    0    00
EN)  0f 000 00 1   0    0   0      0    0    0
                                              (XEN) Using veor-based indexi
(XEN) IRQ to n mappings:
(X) IRQ240 -> 0:0(XEN) IRQ40 -> 1
(XEN) IRQ48  0:2
(XEN) IRQ2 -> 0:3
(XEN)RQ56 -> 0:4
XEN) IRQ72 -> 05
(XEN) IRQ80 -0:7
(XEN) IRQ8-> 0:8
(XEN) I96 -> 0:9
XEN) IRQ112 -> 110
(XEN) IRQ12-> 0:12
(XEN) Q136 -> 0:13
(N) IRQ144 -> 0:
(XEN) IRQ152  0:15
(XEN) IR60 -> 1:7
XEN) IRQ184 -> 132
(XEN) IRQ17-> 1:14
(XEN) Q192 -> 1:15
(N) ...........................

After all, this may also result from the lack of flow control under
Xen.  And that's why I haven't complain about this console corruption
before: there's no option for flow control amongst the Xen console
settings (like the r on the Linux console= option).  But /dev/ttyS0 runs
with crtscts, so flow control should be active on the heartbeat link at
least.  But since CTS/RTS flow control is implemented in software, we're
back to interrupt latency problems.
-- 
Thanks,
Feri.

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