[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHk-=wj48Bdz6MPojis0ONMGO=0L+9bquD9e1_pGc4-et=uLbg@mail.gmail.com>
Date: Tue, 19 Jan 2021 20:44:50 -0800
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Oliver Giles <ohw.giles@...il.com>,
Robert Karszniewicz <r.karszniewicz@...tec.de>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Christoph Hellwig <hch@....de>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Al Viro <viro@...iv.linux.org.uk>,
Jiri Slaby <jirislaby@...nel.org>
Subject: Re: Splicing to/from a tty
On Tue, Jan 19, 2021 at 5:29 PM Oliver Giles <ohw.giles@...il.com> wrote:
>
> Writing this from a kernel with those patches in; happily splice()ing
> to and from a pty.
Ok, good.
I have a couple of improvement patches on top of those, that I'm attaching here.
The first four patches worked fine for me (and apparently for you
too), but due to the small buffer, the regular N_TTY case for tty
read() calls are now limited to 64 bytes each.
That is unfortunate for performance, but it might also cause some
actual breakage: anybody doing "read()" calls on a tty file descriptor
_should_ be perfectly fine with short reads since they happen for
signals etc, but I could well imagine that not everybody is.
And that new kernel buffer interface was _designed_ to allow stitching
small buffers together efficiently (since the hdlc case needed it), so
this implements that for the non-icanon case for n_tty too.
I wasted an embarrasing amount of time today on that final patch - I
spent something like 6 hours chasing a truly stupid one-liner bug I
had initially, and couldn't see what was wrong.
Which is why this only does the non-icanon case, because after I
finally had my "Duh!" moment, I was so annoyed with it that I had to
just walk away.
I'll come back to this tomorrow and do the line-buffered icanon case
too (unless pull requests pile up), and then I'll be happy with the
tty changes, and I think I can submit this series for real to Greg.
But in the meantime, here's two more patches to try on top of the
previous four. They shouldn't matter, other than making the non-icanon
throughput a lot better. But the more coverage they get, the happier
I'll be.
Linus
View attachment "0005-tty-clean-up-legacy-leftovers-from-n_tty-line-discip.patch" of type "text/x-patch" (2202 bytes)
View attachment "0006-tty-teach-n_tty-line-discipline-about-the-new-cookie.patch" of type "text/x-patch" (4889 bytes)
Powered by blists - more mailing lists