Re: [RFC, PATCH] imx: serial: Take tty->files_lock opportunistically

From: Fabio Estevam
Date: Mon Jun 12 2017 - 07:55:58 EST


Hi Greg,

On Mon, Jun 12, 2017 at 3:46 AM, Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> wrote:

>> linux-next is good, but mainline is not.
>>
>> Actually we need 4dec2f119e86f9c9 ("imx-serial: RX DMA startup
>> latency") to be applied to 4.12-rc as well.
>
> Why? Can't it wait until 4.13-rc1?

Because without 4dec2f119e86f9c9 the imx serial driver behaves badly
in 4.12-rc.

Just tested 4.12-rc5 and there is scary verbose warning:

[ 11.714904] =====================================================
[ 11.721006] WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected
[ 11.727628] 4.12.0-rc5 #413 Not tainted
[ 11.731470] -----------------------------------------------------
[ 11.737572] rawtest/219 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
[ 11.744018] (&(&tty->files_lock)->rlock){+.+...}, at: [<c04d83a0>]
imx_startup+0x2c4/0x510
[ 11.752403]
[ 11.752403] and this task is already holding:
[ 11.758241] (&port_lock_key){-.....}, at: [<c04d81e8>]
imx_startup+0x10c/0x510
[ 11.765571] which would create a new lock dependency:
[ 11.770626] (&port_lock_key){-.....} -> (&(&tty->files_lock)->rlock){+.+...}
[ 11.777791]
[ 11.777791] but this new dependency connects a HARDIRQ-irq-safe lock:
[ 11.785712] (&port_lock_key){-.....}
[ 11.785726]
....

Complete stack at: https://pastebin.com/a2gUTwZK

This problem is caused by commit 18a4208826dd0 ("imx-serial: Reduce RX
DMA startup latency when opening for reading").

linux-next has a fix for it: 4dec2f119e86f9c9 ("imx-serial: RX DMA
startup latency")

Applying 4dec2f119e86f9c9 ("imx-serial: RX DMA startup latency") into
4.12-rc5 makes the issue go away.

Thanks