qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Serial: possible hang during intensive interaction over


From: Paolo Bonzini
Subject: Re: [Qemu-devel] Serial: possible hang during intensive interaction over the console
Date: Thu, 11 Dec 2014 15:56:16 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0


On 09/09/2014 17:28, Kirill Batuzov wrote:
> In short: QEMU serial port transmits data as fast as it can ignoring
> baud rate completely. As a result we are stuck in serial8250_interrupt
> ISR in kernel most of the time.
> 
> Overall we have a large issue with rate control and flow control for
> virtual serial port implementations. In QEMU we have over dozen different
> UARTs for different platforms. Among them only one uses baud rate
> (strongarm) and only one implements flow control (16550A).
> 
> CC'ing some people to discuss general course of action in regards to
> serial implementation.
> 
> We probably want some abstract "serial" which is able to transmit one
> character with fixed baud rate and maximum retry count. The actual
> serial port implementations should implement interrupts, control
> registers and FIFO around it. With such design we will not need to
> implement the same bits of rate control and retry logic for every UART
> in QEMU.
> 
> Any thoughts on this?

The baud rate used to be there in the 8250 emulation.  It was removed
when flow control was added (why?), in commit fcfb4d6a.

Adding it back would be nice.

I think an abstraction of the "serial port" concept that is based on the
16550A register set, and with arbitrarily sized FIFOs, would be nice to
have.  All device models would talk to such abstraction.  The 16550A is
well known and a lot of devices take inspiration from it).

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]