[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170605160912.56c76d68@lxorguk.ukuu.org.uk>
Date: Mon, 5 Jun 2017 16:09:12 +0100
From: Alan Cox <gnomes@...rguk.ukuu.org.uk>
To: Mike Galbraith <efault@....de>
Cc: Vegard Nossum <vegard.nossum@...cle.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Dave Jones <davej@...emonkey.org.uk>,
Linux Kernel <linux-kernel@...r.kernel.org>,
Jiri Slaby <jslaby@...e.com>
Subject: Re: [bisected] Re: tty lockdep trace
On Sun, 04 Jun 2017 13:34:31 +0200
Mike Galbraith <efault@....de> wrote:
> On Sun, 2017-06-04 at 12:00 +0200, Vegard Nossum wrote:
> >
> > I don't know how you did it, but this passes my testing (reproducers for
> > both the original issue and the lockdep splat/hang).
>
> I suppose I can sign it off, see if that inspires anyone to come up
> with something better.
>
> drivers/tty: Fix 925bb1ce47f4 circular locking dependency
This is still completely broken and has the same underlying flaw as the
original.
The tty->atomic_write_lock is solely meant to enforce the ordering of a
write() syscall. It can be held for an indefinite amount of time (it's
sometimes multiple seconds in normal flow). Your patch effectively breaks
full duplex support on the serial layer because the internal buffering is
designed to cope with tens of millisecond delays. If the receiver is
multithreaded as is normal then it's also going to wreck the throughput.
We can't defer receive processing indefintiely for transmit processing,
that isn't how RS232 works. If it needs a spinlock putting back to
protect those tty fields then so be it.
NAK
Alan
Powered by blists - more mailing lists