linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Theodore Y. Ts'o" <tytso@mit.edu>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Wander Costa <wcosta@redhat.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jon Hunter <jonathanh@nvidia.com>,
	Jiri Slaby <jirislaby@kernel.org>,
	Wander Lairson Costa <wander@redhat.com>,
	"Maciej W. Rozycki" <macro@orcam.me.uk>,
	Johan Hovold <johan@kernel.org>, Andrew Jeffery <andrew@aj.id.au>,
	"open list:SERIAL DRIVERS" <linux-serial@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>
Subject: Re: [PATCH] tty: serial: Use fifo in 8250 console driver
Date: Thu, 27 Jan 2022 13:10:15 -0500	[thread overview]
Message-ID: <YfLgB/WsQcePTXlQ@mit.edu> (raw)
In-Reply-To: <YfELyq5AmxiZxjme@kroah.com>

On Wed, Jan 26, 2022 at 09:52:26AM +0100, Greg Kroah-Hartman wrote:
> 
> Let me revert this for now.  And no new config options please, this
> should "just work".

I'm not sure the commit is actually worth the extra complexity, to be
honest.  The reason for the FIFO is to improve interrupt latency, and
in the console write path, we're busy looping.  There is something
seriously wrong serial port of the HP Proliant DL380 Gen 9.  Per the
commit description for 5021d709b31b: ("tty: serial: Use fifo in 8250
console driver"), on the "fast machine" (read: the one with a
propertly working serial port), we were getting over 10 KB/s without
the patch.  And on the "slow machine" it was getting only 2.5 KB/s,
and with the patch it only improved things by 25% (so only 3.1 KB/s).

I assume what must be going on is this machine is emulating the UART
and is extremely slow to set the Trasmitter Holding Register Empty
(THRE) bit after the UART is finished sending the byte out the serial
port.

So we're adding a lot of complexity for what is obviously broken
hardware, and we risk breaking the serial console for other machines
with a properly implemented serial port.  How common are UART's which
are broken in this way?  Is it unique to the HP Proliant DL380 Gen 9?
Or is a common misimplementation which is unfortunately quite common?
If it's the former, maybe the FIFO hack should only be done via a
quirk?

If it's really the case that the HP Proliant's nasty performance is
due to a badly implemented emulation layer, is there any way to do
better, perhaps via a more direct path to the serial port?  Or is the
problem that the serial port on this motherboard is connected via some
super-slow internal path and it would be faster if you could talk to
it directly via a UEFI call, or some other mechanism?  Whether it's
2.5 KB/s or 3.1 KB/s, it's really quite pathetic....

     	      	     	   	       - Ted

  parent reply	other threads:[~2022-01-27 18:11 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-29 20:14 [PATCH] tty: serial: Use fifo in 8250 console driver wander
     [not found] ` <CAHp75VeZBp4gKvGBDzaD=EpGRDZ1-wTvD8K9Ui6Q59kDjmkXmQ@mail.gmail.com>
2021-11-01 15:22   ` Wander Costa
2021-11-01 15:32     ` Andy Shevchenko
2021-11-10 12:10       ` Wander Costa
2021-11-12 11:58         ` David Laight
2022-01-25  8:39 ` Jon Hunter
2022-01-25  8:50   ` Greg Kroah-Hartman
2022-01-25  9:03     ` Jon Hunter
2022-01-25  9:08   ` Jiri Slaby
2022-01-25  9:36     ` Jiri Slaby
2022-01-25 10:06       ` Jon Hunter
2022-01-25 10:29         ` Wander Costa
2022-01-25 12:40           ` Jon Hunter
2022-01-25 16:53             ` Andy Shevchenko
2022-01-25 16:54               ` Andy Shevchenko
2022-01-25 18:40                 ` Wander Costa
2022-01-26  8:52                   ` Greg Kroah-Hartman
2022-01-26 12:09                     ` Andy Shevchenko
2022-01-26 13:23                       ` Wander Costa
2022-01-26 13:34                         ` Andy Shevchenko
2022-01-27 18:10                     ` Theodore Y. Ts'o [this message]
2022-01-25 10:18       ` Wander Costa
2022-01-25 10:38         ` Jiri Slaby

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YfLgB/WsQcePTXlQ@mit.edu \
    --to=tytso@mit.edu \
    --cc=andrew@aj.id.au \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jirislaby@kernel.org \
    --cc=johan@kernel.org \
    --cc=jonathanh@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=macro@orcam.me.uk \
    --cc=wander@redhat.com \
    --cc=wcosta@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).