Dear Russell:
>I don't think we want this. With early serial console, tx_loadsz is
>not guaranteed to be initialised, and may in fact be zero.
>Plus there's no guarantee that the FIFOs will actually be enabled, so
>I think it's better that this patch doesn't go to mainline.
Our server has a virtual serial port, but its performance seems to be poor.
It takes 10 seconds to output 4000 characters (from kernel) to serial
console. By applying my patch, its peformance could be improved. ( 0.4
seconds / 4000 characters output), so I think it is useful to use FIFO at
serial8250_console_write function like transmit_chars function. Where
should I correct in order to use FIFO?
Taku Izumi <[email protected]>
On Thu, Sep 08, 2005 at 04:47:32PM +0900, Taku Izumi wrote:
> >I don't think we want this. With early serial console, tx_loadsz is
> >not guaranteed to be initialised, and may in fact be zero.
>
> >Plus there's no guarantee that the FIFOs will actually be enabled, so
> >I think it's better that this patch doesn't go to mainline.
>
> Our server has a virtual serial port, but its performance seems to be poor.
> It takes 10 seconds to output 4000 characters (from kernel) to serial
> console. By applying my patch, its peformance could be improved. ( 0.4
> seconds / 4000 characters output), so I think it is useful to use FIFO at
> serial8250_console_write function like transmit_chars function. Where
> should I correct in order to use FIFO?
The problem is that we don't know:
* if there is a FIFO
* what size the FIFO is
* if it has been initialised
* how much data is already contained in the FIFO
So we can't really blindly initialise the FIFO in the console write
method. Neither can we initialise it in the console setup. If we
could initialise it, we can't blindly load 16 bytes into the FIFO
at a time.
I don't think it's technically practical to use the FIFO for the
console and still have a reliable serial port.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core