From: Sasha Levin <levinsasha928@gmail.com>
To: Peter Hurley <peter@hurleysoftware.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jiri Slaby <jslaby@suse.cz>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org,
Ilya Zykov <ilya@ilyx.ru>, Dave Jones <davej@redhat.com>,
Michael Ellerman <michael@ellerman.id.au>,
Shawn Guo <shawn.guo@linaro.org>
Subject: Re: [PATCH v4 00/32] ldisc patchset
Date: Sat, 23 Feb 2013 11:42:22 -0500 [thread overview]
Message-ID: <5128F16E.30804@gmail.com> (raw)
In-Reply-To: <5128DF40.7030003@gmail.com>
On 02/23/2013 10:24 AM, Sasha Levin wrote:
> On 02/22/2013 01:37 PM, Peter Hurley wrote:
>> On Thu, 2013-02-21 at 08:38 -0500, Peter Hurley wrote:
>>> On Thu, 2013-02-21 at 08:16 -0500, Sasha Levin wrote:
>>>> On 02/20/2013 03:02 PM, Peter Hurley wrote:
>>>>> Sasha and Dave, my trinity testbeds die in other areas right now;
>>>>> I would really appreciate if you would please re-test this series.
>>>>
>>>> Hi Peter,
>>>>
>>>> I saw this twice in overnight fuzzing:
>>>>
>>>> [ 1473.912280] =================================
>>>> [ 1473.913180] [ BUG: bad contention detected! ]
>>>> [ 1473.914071] 3.8.0-next-20130220-sasha-00038-g1ad55df-dirty #8 Tainted: G W
>>>> [ 1473.915684] ---------------------------------
>>>> [ 1473.916549] kworker/1:1/361 is trying to contend lock (&tty->ldisc_sem) at:
>>>> [ 1473.918031] [<ffffffff81c493df>] tty_ldisc_ref+0x1f/0x60
>>>> [ 1473.919060] but there are no locks held!
>>>
>>> Ahh, of course. That explains why the rwsem trylock doesn't track lock
>>> stats -- because by the time lock_contended() is called, up_write()
>>> could have just called lockdep_release(), so that it appears as if the
>>> lock has been released when in fact it has not but is about to.
>>>
>>> I'll just remove the lock contention test from the trylocks.
>>
>> Hi Sasha,
>>
>> Sorry for the delay. I was actually looking into if I could tickle
>> lockdep into just recording the lock contention without testing, but
>> unfortunately, changes to where lockdep stores the contention now
>> requires the lockdep state to have an existing owner.
>>
>> So here's the trivial patch:
>
> Hi Peter,
>
> After more fuzzing, I'm seeing this sort of hangs (which are new):
>
> [ 2644.723879] INFO: task trinity:17893 blocked for more than 120 seconds.
> [ 2644.727112] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
> [ 2644.731916] trinity D ffff8800a9c904a8 5192 17893 8043 0x00000000
> [ 2644.733517] ffff88006efb3a78 0000000000000002 ffff8800aa0c3b10 ffff8800bb3d7180
> [ 2644.739350] ffff880019103000 ffff880097a78000 ffff88006efb3a78 00000000001d7180
> [ 2644.741459] ffff880097a78000 ffff88006efb3fd8 00000000001d7180 00000000001d7180
> [ 2644.746590] Call Trace:
> [ 2644.747177] [<ffffffff83db9909>] __schedule+0x2e9/0x3b0
> [ 2644.748294] [<ffffffff83db9b35>] schedule+0x55/0x60
> [ 2644.752382] [<ffffffff83db9e83>] schedule_preempt_disabled+0x13/0x20
> [ 2644.753737] [<ffffffff83db7fdd>] __mutex_lock_common+0x34d/0x560
> [ 2644.759037] [<ffffffff81c40893>] ? ptmx_open+0x83/0x190
> [ 2644.760590] [<ffffffff83db84b5>] ? __mutex_unlock_slowpath+0x185/0x1e0
> [ 2644.762064] [<ffffffff81c40893>] ? ptmx_open+0x83/0x190
> [ 2644.768967] [<ffffffff83db831f>] mutex_lock_nested+0x3f/0x50
> [ 2644.770314] [<ffffffff81c40893>] ptmx_open+0x83/0x190
> [ 2644.771413] [<ffffffff812917ae>] chrdev_open+0x11e/0x190
> [ 2644.780456] [<ffffffff81291690>] ? cdev_put+0x30/0x30
> [ 2644.781421] [<ffffffff8128af59>] do_dentry_open+0x1f9/0x310
> [ 2644.785550] [<ffffffff8128b0bc>] finish_open+0x4c/0x70
> [ 2644.786724] [<ffffffff8129c3eb>] do_last+0x61b/0x810
> [ 2644.787676] [<ffffffff8129c699>] path_openat+0xb9/0x4d0
> [ 2644.791868] [<ffffffff812ac278>] ? __alloc_fd+0x1e8/0x200
> [ 2644.792817] [<ffffffff81185214>] ? lock_release_nested+0xb4/0xf0
> [ 2644.794010] [<ffffffff81185331>] ? __lock_release+0xe1/0x100
> [ 2644.797401] [<ffffffff8129cebd>] do_filp_open+0x3d/0xa0
> [ 2644.798467] [<ffffffff812ac278>] ? __alloc_fd+0x1e8/0x200
> [ 2644.799577] [<ffffffff8128c51b>] do_sys_open+0x12b/0x1d0
> [ 2644.804667] [<ffffffff8128c5dc>] sys_open+0x1c/0x20
> [ 2644.805542] [<ffffffff83dc49d8>] tracesys+0xe1/0xe6
> [ 2644.822807] 1 lock held by trinity/17893:
> [ 2644.823685] #0: (tty_mutex){+.+.+.}, at: [<ffffffff81c40893>] ptmx_open+0x83/0x190
>
> The mutex is 'tty_mutex' at drivers/tty/pty.c:701 .
>
> I didn't grab sysrq-t this time since it was an overnight run, but I'll
> try to grab one when it happens again.
Hi Peter,
I've also got this one for the first time:
[ 484.450139] INFO: task init:1 blocked for more than 120 seconds.
[ 484.451130] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 484.452013] init D 00000000001d7180 2688 1 0 0x00000002
[ 484.452883] ffff8800b9acfba8 0000000000000002 00000000001d7180 ffff8800b9b10048
[ 484.453816] ffff8800b94cb000 ffff8800b9b10000 00000000001d7180 00000000001d7180
[ 484.454529] ffff8800b9b10000 ffff8800b9acffd8 00000000001d7180 00000000001d7180
[ 484.455232] Call Trace:
[ 484.455515] [<ffffffff83db9909>] __schedule+0x2e9/0x3b0
[ 484.456081] [<ffffffff83db9b35>] schedule+0x55/0x60
[ 484.456636] [<ffffffff83db74ba>] schedule_timeout+0x3a/0x370
[ 484.457263] [<ffffffff81182349>] ? mark_held_locks+0xf9/0x130
[ 484.457866] [<ffffffff83dbab38>] ? down_failed+0x108/0x200
[ 484.458539] [<ffffffff83dbb7ab>] ? _raw_spin_unlock_irq+0x2b/0x80
[ 484.459223] [<ffffffff81182608>] ? trace_hardirqs_on_caller+0x128/0x160
[ 484.459822] [<ffffffff83dbab61>] down_failed+0x131/0x200
[ 484.460512] [<ffffffff83dbbfad>] ? tty_ldisc_lock_pair_timeout+0xcd/0x120
[ 484.461376] [<ffffffff83dbae03>] ldsem_down_write+0xd3/0x113
[ 484.461895] [<ffffffff83dbbfad>] ? tty_ldisc_lock_pair_timeout+0xcd/0x120
[ 484.462824] [<ffffffff8118264d>] ? trace_hardirqs_on+0xd/0x10
[ 484.463504] [<ffffffff83dbbfad>] tty_ldisc_lock_pair_timeout+0xcd/0x120
[ 484.464258] [<ffffffff81c3df60>] tty_ldisc_hangup+0xd0/0x220
[ 484.464825] [<ffffffff81c35bd7>] __tty_hangup+0x137/0x4f0
[ 484.465684] [<ffffffff81c37c7c>] disassociate_ctty+0x6c/0x230
[ 484.466607] [<ffffffff8111290c>] do_exit+0x41c/0x590
[ 484.467419] [<ffffffff8107ad34>] ? syscall_trace_enter+0x24/0x2e0
[ 484.468413] [<ffffffff81112b4a>] do_group_exit+0x8a/0xc0
[ 484.469281] [<ffffffff81112b92>] sys_exit_group+0x12/0x20
[ 484.470159] [<ffffffff83dc49d8>] tracesys+0xe1/0xe6
[ 484.470951] 1 lock held by init/1:
[ 484.471513] #0: (&tty->ldisc_sem){++++++}, at: [<ffffffff83dbbfad>] tty_ldisc_lock_pair_timeout+0xcd/0x120
[ 484.473290] INFO: task trinity:9732 blocked for more than 120 seconds.
[ 484.474324] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 484.475540] trinity D 00000000001d7180 4992 9732 1 0x00000000
[ 484.476691] ffff8800915ddc28 0000000000000002 00000000001d7180 ffff8800aa09d208
[ 484.477933] ffff8800b94b3000 ffff880070188000 00000000001d7180 00000000001d7180
[ 484.479180] ffff880070188000 ffff8800915ddfd8 00000000001d7180 00000000001d7180
[ 484.480387] Call Trace:
[ 484.480744] [<ffffffff83db9909>] __schedule+0x2e9/0x3b0
[ 484.481487] [<ffffffff83db9b35>] schedule+0x55/0x60
[ 484.482258] [<ffffffff83db74ba>] schedule_timeout+0x3a/0x370
[ 484.483164] [<ffffffff81182349>] ? mark_held_locks+0xf9/0x130
[ 484.484059] [<ffffffff83dbab38>] ? down_failed+0x108/0x200
[ 484.484915] [<ffffffff83dbb7ab>] ? _raw_spin_unlock_irq+0x2b/0x80
[ 484.485866] [<ffffffff81182608>] ? trace_hardirqs_on_caller+0x128/0x160
[ 484.486890] [<ffffffff83dbab61>] down_failed+0x131/0x200
[ 484.487714] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 484.488628] [<ffffffff83dbacbc>] ldsem_down_read+0x8c/0x100
[ 484.489522] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 484.490463] [<ffffffff81185331>] ? __lock_release+0xe1/0x100
[ 484.491349] [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 484.491967] [<ffffffff81c36508>] tty_write+0x98/0xf0
[ 484.492442] [<ffffffff81a38938>] ? do_raw_spin_unlock+0xc8/0xe0
[ 484.493000] [<ffffffff81c365f5>] redirected_tty_write+0x95/0xc0
[ 484.493826] [<ffffffff8128ce38>] vfs_write+0xb8/0x180
[ 484.494643] [<ffffffff8128d170>] sys_write+0x50/0xa0
[ 484.495460] [<ffffffff83dc49d8>] tracesys+0xe1/0xe6
[ 484.496398] 1 lock held by trinity/9732:
[ 484.497032] #0: (&tty->ldisc_sem){++++++}, at: [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 484.498606] INFO: task trinity:10089 blocked for more than 120 seconds.
[ 484.499640] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 484.500885] trinity D 00000000001d7180 5224 10089 1 0x00000000
[ 484.502053] ffff88006bb2bc28 0000000000000002 00000000001d7180 ffff8800aa09d208
[ 484.503256] ffff8800b94b3000 ffff880094303000 00000000001d7180 00000000001d7180
[ 484.504450] ffff880094303000 ffff88006bb2bfd8 00000000001d7180 00000000001d7180
[ 484.505657] Call Trace:
[ 484.506052] [<ffffffff83db9909>] __schedule+0x2e9/0x3b0
[ 484.506871] [<ffffffff83db9b35>] schedule+0x55/0x60
[ 484.507650] [<ffffffff83db74ba>] schedule_timeout+0x3a/0x370
[ 484.508542] [<ffffffff81182349>] ? mark_held_locks+0xf9/0x130
[ 484.509446] [<ffffffff83dbab38>] ? down_failed+0x108/0x200
[ 484.510312] [<ffffffff83dbb7ab>] ? _raw_spin_unlock_irq+0x2b/0x80
[ 484.511285] [<ffffffff81182608>] ? trace_hardirqs_on_caller+0x128/0x160
[ 484.512276] [<ffffffff83dbab61>] down_failed+0x131/0x200
[ 484.512813] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 484.513459] [<ffffffff83dbacbc>] ldsem_down_read+0x8c/0x100
[ 484.514345] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 484.515263] [<ffffffff81185331>] ? __lock_release+0xe1/0x100
[ 484.516135] [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 484.517049] [<ffffffff81c36508>] tty_write+0x98/0xf0
[ 484.517842] [<ffffffff81a38938>] ? do_raw_spin_unlock+0xc8/0xe0
[ 484.518780] [<ffffffff81c365f5>] redirected_tty_write+0x95/0xc0
[ 484.519730] [<ffffffff8128ce38>] vfs_write+0xb8/0x180
[ 484.520590] [<ffffffff8128d170>] sys_write+0x50/0xa0
[ 484.521108] [<ffffffff83dc49d8>] tracesys+0xe1/0xe6
[ 484.521976] 1 lock held by trinity/10089:
[ 484.522619] #0: (&tty->ldisc_sem){++++++}, at: [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 484.524181] INFO: task trinity:10254 blocked for more than 120 seconds.
[ 484.525200] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 484.526405] trinity D 00000000001d7180 5240 10254 1 0x00000000
[ 484.527559] ffff880096219c28 0000000000000002 00000000001d7180 ffff8800aa09cb78
[ 484.528799] ffff8800b94c3000 ffff8800961a8000 00000000001d7180 00000000001d7180
[ 484.530059] ffff8800961a8000 ffff880096219fd8 00000000001d7180 00000000001d7180
[ 484.531205] Call Trace:
[ 484.531593] [<ffffffff83db9909>] __schedule+0x2e9/0x3b0
[ 484.532185] [<ffffffff83db9b35>] schedule+0x55/0x60
[ 484.532964] [<ffffffff83db74ba>] schedule_timeout+0x3a/0x370
[ 484.533865] [<ffffffff81182349>] ? mark_held_locks+0xf9/0x130
[ 484.534784] [<ffffffff83dbab38>] ? down_failed+0x108/0x200
[ 484.535669] [<ffffffff83dbb7ab>] ? _raw_spin_unlock_irq+0x2b/0x80
[ 484.536660] [<ffffffff81182608>] ? trace_hardirqs_on_caller+0x128/0x160
[ 484.537716] [<ffffffff83dbab61>] down_failed+0x131/0x200
[ 484.538568] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 484.539511] [<ffffffff83dbacbc>] ldsem_down_read+0x8c/0x100
[ 484.540426] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 484.541321] [<ffffffff81185331>] ? __lock_release+0xe1/0x100
[ 484.542097] [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 484.542754] [<ffffffff81c36508>] tty_write+0x98/0xf0
[ 484.543299] [<ffffffff81a38938>] ? do_raw_spin_unlock+0xc8/0xe0
[ 484.543930] [<ffffffff81c365f5>] redirected_tty_write+0x95/0xc0
[ 484.544529] [<ffffffff8128ce38>] vfs_write+0xb8/0x180
[ 484.545109] [<ffffffff8128d170>] sys_write+0x50/0xa0
[ 484.545590] [<ffffffff83dc49d8>] tracesys+0xe1/0xe6
[ 484.546280] 1 lock held by trinity/10254:
[ 484.546841] #0: (&tty->ldisc_sem){++++++}, at: [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 484.547890] INFO: task trinity:10643 blocked for more than 120 seconds.
[ 484.548516] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 484.549320] trinity D 00000000001d7180 5432 10643 1 0x00000000
[ 484.550051] ffff88006adafc28 0000000000000002 00000000001d7180 ffff8800aa09cec0
[ 484.551316] ffff8800b94c0000 ffff880090a6b000 00000000001d7180 00000000001d7180
[ 484.552233] ffff880090a6b000 ffff88006adaffd8 00000000001d7180 00000000001d7180
[ 484.553283] Call Trace:
[ 484.553564] [<ffffffff83db9909>] __schedule+0x2e9/0x3b0
[ 484.554125] [<ffffffff83db9b35>] schedule+0x55/0x60
[ 484.554746] [<ffffffff83db74ba>] schedule_timeout+0x3a/0x370
[ 484.555490] [<ffffffff81182349>] ? mark_held_locks+0xf9/0x130
[ 484.556289] [<ffffffff83dbab38>] ? down_failed+0x108/0x200
[ 484.556892] [<ffffffff83dbb7ab>] ? _raw_spin_unlock_irq+0x2b/0x80
[ 484.557576] [<ffffffff81182608>] ? trace_hardirqs_on_caller+0x128/0x160
[ 484.558452] [<ffffffff83dbab61>] down_failed+0x131/0x200
[ 484.559045] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 484.559786] [<ffffffff83dbacbc>] ldsem_down_read+0x8c/0x100
[ 484.560742] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 484.561913] [<ffffffff81185331>] ? __lock_release+0xe1/0x100
[ 484.562875] [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 484.563587] [<ffffffff81c36508>] tty_write+0x98/0xf0
[ 484.564126] [<ffffffff81a38938>] ? do_raw_spin_unlock+0xc8/0xe0
[ 484.564938] [<ffffffff81c365f5>] redirected_tty_write+0x95/0xc0
[ 484.565569] [<ffffffff8128ce38>] vfs_write+0xb8/0x180
[ 484.566098] [<ffffffff8128d170>] sys_write+0x50/0xa0
[ 484.566740] [<ffffffff83dc49d8>] tracesys+0xe1/0xe6
[ 484.567436] 1 lock held by trinity/10643:
[ 484.567932] #0: (&tty->ldisc_sem){++++++}, at: [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 484.569211] INFO: task trinity:11088 blocked for more than 120 seconds.
[ 484.569980] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 484.571067] trinity D 00000000001d7180 5608 11088 1 0x00000000
[ 484.572132] ffff88006b197c28 0000000000000002 00000000001d7180 ffff8800aa09cb78
[ 484.573011] ffff8800b94c3000 ffff88009a633000 00000000001d7180 00000000001d7180
[ 484.573876] ffff88009a633000 ffff88006b197fd8 00000000001d7180 00000000001d7180
[ 484.574822] Call Trace:
[ 484.575092] [<ffffffff83db9909>] __schedule+0x2e9/0x3b0
[ 484.575811] [<ffffffff83db9b35>] schedule+0x55/0x60
[ 484.576413] [<ffffffff83db74ba>] schedule_timeout+0x3a/0x370
[ 484.577003] [<ffffffff81182349>] ? mark_held_locks+0xf9/0x130
[ 484.577732] [<ffffffff83dbab38>] ? down_failed+0x108/0x200
[ 484.578381] [<ffffffff83dbb7ab>] ? _raw_spin_unlock_irq+0x2b/0x80
[ 484.579070] [<ffffffff81182608>] ? trace_hardirqs_on_caller+0x128/0x160
[ 484.579836] [<ffffffff83dbab61>] down_failed+0x131/0x200
[ 484.580600] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 484.581320] [<ffffffff83dbacbc>] ldsem_down_read+0x8c/0x100
[ 484.581947] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 484.582536] [<ffffffff81185331>] ? __lock_release+0xe1/0x100
[ 484.583061] [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 484.583741] [<ffffffff81c36508>] tty_write+0x98/0xf0
[ 484.584215] [<ffffffff81a38938>] ? do_raw_spin_unlock+0xc8/0xe0
[ 484.584893] [<ffffffff81c365f5>] redirected_tty_write+0x95/0xc0
[ 484.585491] [<ffffffff8128ce38>] vfs_write+0xb8/0x180
[ 484.586000] [<ffffffff8128d170>] sys_write+0x50/0xa0
[ 484.586543] [<ffffffff83dc49d8>] tracesys+0xe1/0xe6
[ 484.587211] 1 lock held by trinity/11088:
[ 484.587599] #0: (&tty->ldisc_sem){++++++}, at: [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 604.580385] INFO: task init:1 blocked for more than 120 seconds.
[ 604.581345] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 604.582364] init D 00000000001d7180 2688 1 0 0x00000002
[ 604.583115] ffff8800b9acfba8 0000000000000002 00000000001d7180 ffff8800b9b10048
[ 604.583949] ffff8800b94cb000 ffff8800b9b10000 00000000001d7180 00000000001d7180
[ 604.584652] ffff8800b9b10000 ffff8800b9acffd8 00000000001d7180 00000000001d7180
[ 604.585375] Call Trace:
[ 604.585680] [<ffffffff83db9909>] __schedule+0x2e9/0x3b0
[ 604.586213] [<ffffffff83db9b35>] schedule+0x55/0x60
[ 604.586744] [<ffffffff83db74ba>] schedule_timeout+0x3a/0x370
[ 604.587322] [<ffffffff81182349>] ? mark_held_locks+0xf9/0x130
[ 604.587850] [<ffffffff83dbab38>] ? down_failed+0x108/0x200
[ 604.588379] [<ffffffff83dbb7ab>] ? _raw_spin_unlock_irq+0x2b/0x80
[ 604.588991] [<ffffffff81182608>] ? trace_hardirqs_on_caller+0x128/0x160
[ 604.589743] [<ffffffff83dbab61>] down_failed+0x131/0x200
[ 604.590598] [<ffffffff83dbbfad>] ? tty_ldisc_lock_pair_timeout+0xcd/0x120
[ 604.591651] [<ffffffff83dbae03>] ldsem_down_write+0xd3/0x113
[ 604.592467] [<ffffffff83dbbfad>] ? tty_ldisc_lock_pair_timeout+0xcd/0x120
[ 604.593494] [<ffffffff8118264d>] ? trace_hardirqs_on+0xd/0x10
[ 604.594402] [<ffffffff83dbbfad>] tty_ldisc_lock_pair_timeout+0xcd/0x120
[ 604.595445] [<ffffffff81c3df60>] tty_ldisc_hangup+0xd0/0x220
[ 604.596324] [<ffffffff81c35bd7>] __tty_hangup+0x137/0x4f0
[ 604.597159] [<ffffffff81c37c7c>] disassociate_ctty+0x6c/0x230
[ 604.598047] [<ffffffff8111290c>] do_exit+0x41c/0x590
[ 604.598872] [<ffffffff8107ad34>] ? syscall_trace_enter+0x24/0x2e0
[ 604.599827] [<ffffffff81112b4a>] do_group_exit+0x8a/0xc0
[ 604.600686] [<ffffffff81112b92>] sys_exit_group+0x12/0x20
[ 604.601568] [<ffffffff83dc49d8>] tracesys+0xe1/0xe6
[ 604.608562] 1 lock held by init/1:
[ 604.609053] #0: (&tty->ldisc_sem){++++++}, at: [<ffffffff83dbbfad>] tty_ldisc_lock_pair_timeout+0xcd/0x120
[ 604.610836] INFO: task trinity:9732 blocked for more than 120 seconds.
[ 604.611877] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 604.613063] trinity D 00000000001d7180 4992 9732 1 0x00000000
[ 604.614204] ffff8800915ddc28 0000000000000002 00000000001d7180 ffff8800aa09d208
[ 604.615410] ffff8800b94b3000 ffff880070188000 00000000001d7180 00000000001d7180
[ 604.616604] ffff880070188000 ffff8800915ddfd8 00000000001d7180 00000000001d7180
[ 604.617846] Call Trace:
[ 604.618258] [<ffffffff83db9909>] __schedule+0x2e9/0x3b0
[ 604.619076] [<ffffffff83db9b35>] schedule+0x55/0x60
[ 604.619844] [<ffffffff83db74ba>] schedule_timeout+0x3a/0x370
[ 604.620754] [<ffffffff81182349>] ? mark_held_locks+0xf9/0x130
[ 604.621682] [<ffffffff83dbab38>] ? down_failed+0x108/0x200
[ 604.622533] [<ffffffff83dbb7ab>] ? _raw_spin_unlock_irq+0x2b/0x80
[ 604.623475] [<ffffffff81182608>] ? trace_hardirqs_on_caller+0x128/0x160
[ 604.624533] [<ffffffff83dbab61>] down_failed+0x131/0x200
[ 604.625372] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 604.626325] [<ffffffff83dbacbc>] ldsem_down_read+0x8c/0x100
[ 604.627239] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 604.628193] [<ffffffff81185331>] ? __lock_release+0xe1/0x100
[ 604.629107] [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 604.630082] [<ffffffff81c36508>] tty_write+0x98/0xf0
[ 604.630856] [<ffffffff81a38938>] ? do_raw_spin_unlock+0xc8/0xe0
[ 604.631819] [<ffffffff81c365f5>] redirected_tty_write+0x95/0xc0
[ 604.632778] [<ffffffff8128ce38>] vfs_write+0xb8/0x180
[ 604.633595] [<ffffffff8128d170>] sys_write+0x50/0xa0
[ 604.634422] [<ffffffff83dc49d8>] tracesys+0xe1/0xe6
[ 604.635324] 1 lock held by trinity/9732:
[ 604.635906] #0: (&tty->ldisc_sem){++++++}, at: [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 604.637466] INFO: task trinity:10089 blocked for more than 120 seconds.
[ 604.638496] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 604.639675] trinity D 00000000001d7180 5224 10089 1 0x00000000
[ 604.640798] ffff88006bb2bc28 0000000000000002 00000000001d7180 ffff8800aa09d208
[ 604.641731] ffff8800b94b3000 ffff880094303000 00000000001d7180 00000000001d7180
[ 604.642769] ffff880094303000 ffff88006bb2bfd8 00000000001d7180 00000000001d7180
[ 604.643977] Call Trace:
[ 604.644383] [<ffffffff83db9909>] __schedule+0x2e9/0x3b0
[ 604.645205] [<ffffffff83db9b35>] schedule+0x55/0x60
[ 604.645957] [<ffffffff83db74ba>] schedule_timeout+0x3a/0x370
[ 604.646843] [<ffffffff81182349>] ? mark_held_locks+0xf9/0x130
[ 604.647746] [<ffffffff83dbab38>] ? down_failed+0x108/0x200
[ 604.648624] [<ffffffff83dbb7ab>] ? _raw_spin_unlock_irq+0x2b/0x80
[ 604.649605] [<ffffffff81182608>] ? trace_hardirqs_on_caller+0x128/0x160
[ 604.650652] [<ffffffff83dbab61>] down_failed+0x131/0x200
[ 604.651445] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 604.652366] [<ffffffff83dbacbc>] ldsem_down_read+0x8c/0x100
[ 604.653267] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 604.654222] [<ffffffff81185331>] ? __lock_release+0xe1/0x100
[ 604.655118] [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 604.656040] [<ffffffff81c36508>] tty_write+0x98/0xf0
[ 604.656848] [<ffffffff81a38938>] ? do_raw_spin_unlock+0xc8/0xe0
[ 604.657794] [<ffffffff81c365f5>] redirected_tty_write+0x95/0xc0
[ 604.658750] [<ffffffff8128ce38>] vfs_write+0xb8/0x180
[ 604.659597] [<ffffffff8128d170>] sys_write+0x50/0xa0
[ 604.660412] [<ffffffff83dc49d8>] tracesys+0xe1/0xe6
[ 604.661209] 1 lock held by trinity/10089:
[ 604.661828] #0: (&tty->ldisc_sem){++++++}, at: [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 604.662732] INFO: task trinity:10254 blocked for more than 120 seconds.
[ 604.663310] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 604.664504] trinity D 00000000001d7180 5240 10254 1 0x00000000
[ 604.665679] ffff880096219c28 0000000000000002 00000000001d7180 ffff8800aa09cb78
[ 604.666874] ffff8800b94c3000 ffff8800961a8000 00000000001d7180 00000000001d7180
[ 604.668060] ffff8800961a8000 ffff880096219fd8 00000000001d7180 00000000001d7180
[ 604.669320] Call Trace:
[ 604.669713] [<ffffffff83db9909>] __schedule+0x2e9/0x3b0
[ 604.670542] [<ffffffff83db9b35>] schedule+0x55/0x60
[ 604.671360] [<ffffffff83db74ba>] schedule_timeout+0x3a/0x370
[ 604.672270] [<ffffffff81182349>] ? mark_held_locks+0xf9/0x130
[ 604.673161] [<ffffffff83dbab38>] ? down_failed+0x108/0x200
[ 604.674051] [<ffffffff83dbb7ab>] ? _raw_spin_unlock_irq+0x2b/0x80
[ 604.675022] [<ffffffff81182608>] ? trace_hardirqs_on_caller+0x128/0x160
[ 604.676068] [<ffffffff83dbab61>] down_failed+0x131/0x200
[ 604.676940] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 604.677896] [<ffffffff83dbacbc>] ldsem_down_read+0x8c/0x100
[ 604.678803] [<ffffffff81c3d6bf>] ? tty_ldisc_ref_wait+0x1f/0x50
[ 604.679760] [<ffffffff81185331>] ? __lock_release+0xe1/0x100
[ 604.680639] [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
[ 604.681485] [<ffffffff81c36508>] tty_write+0x98/0xf0
[ 604.682288] [<ffffffff81a38938>] ? do_raw_spin_unlock+0xc8/0xe0
[ 604.683246] [<ffffffff81c365f5>] redirected_tty_write+0x95/0xc0
[ 604.684206] [<ffffffff8128ce38>] vfs_write+0xb8/0x180
[ 604.685055] [<ffffffff8128d170>] sys_write+0x50/0xa0
[ 604.685858] [<ffffffff83dc49d8>] tracesys+0xe1/0xe6
[ 604.686738] 1 lock held by trinity/10254:
[ 604.687366] #0: (&tty->ldisc_sem){++++++}, at: [<ffffffff81c3d6bf>] tty_ldisc_ref_wait+0x1f/0x50
Thanks,
Sasha
next prev parent reply other threads:[~2013-02-23 16:42 UTC|newest]
Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-14 18:22 [PATCH v2 00/11] tty: Fix buffer work access-after-free Peter Hurley
2012-12-14 18:22 ` [PATCH v2 01/11] tty: debug buffer work race with tty free Peter Hurley
2012-12-14 18:22 ` [PATCH v2 02/11] tty: WARN if buffer work racing " Peter Hurley
2012-12-14 18:22 ` [PATCH v2 03/11] tty: Add diagnostic for halted line discipline Peter Hurley
2012-12-14 18:22 ` [PATCH v2 04/11] tty: Refactor n_tty_flush_buffer Peter Hurley
2012-12-14 18:22 ` [PATCH v2 05/11] tty: Don't flush buffer when closing ldisc Peter Hurley
2012-12-14 18:22 ` [PATCH v2 06/11] tty: Refactor wait for ldisc refs out of tty_ldisc_hangup() Peter Hurley
2012-12-14 18:22 ` [PATCH v2 07/11] tty: Remove unnecessary re-test of ldisc ref count Peter Hurley
2012-12-14 18:22 ` [PATCH v2 08/11] tty: Fix ldisc halt sequence on hangup Peter Hurley
2012-12-14 18:22 ` [PATCH v2 09/11] tty: Strengthen no-subsequent-use guarantee of tty_ldisc_halt() Peter Hurley
2012-12-14 18:22 ` [PATCH v2 10/11] tty: Remove unnecessary buffer work flush Peter Hurley
2012-12-14 18:22 ` [PATCH v2 11/11] tty: Halt both ldiscs concurrently Peter Hurley
2012-12-18 15:44 ` [PATCH v2 00/11] tty: Fix buffer work access-after-free Sasha Levin
2012-12-18 16:48 ` Peter Hurley
2012-12-18 20:44 ` Ilya Zykov
2012-12-19 20:27 ` Peter Hurley
2012-12-19 20:38 ` Sasha Levin
2012-12-20 19:03 ` Peter Hurley
2013-02-05 20:20 ` [PATCH v3 00/23] ldisc fixes Peter Hurley
2013-02-05 20:20 ` [PATCH v3 01/23] tty: Add diagnostic for halted line discipline Peter Hurley
2013-02-07 14:50 ` Jiri Slaby
2013-02-07 15:53 ` Peter Hurley
2013-02-07 15:55 ` Jiri Slaby
2013-02-05 20:20 ` [PATCH v3 02/23] n_tty: Factor packet mode status change for reuse Peter Hurley
2013-02-07 14:51 ` Jiri Slaby
2013-02-07 15:58 ` Peter Hurley
2013-02-05 20:20 ` [PATCH v3 03/23] n_tty: Don't flush buffer when closing ldisc Peter Hurley
2013-02-07 14:57 ` Jiri Slaby
2013-02-05 20:20 ` [PATCH v3 04/23] tty: Refactor wait for ldisc refs out of tty_ldisc_hangup() Peter Hurley
2013-02-07 15:11 ` Jiri Slaby
2013-02-05 20:20 ` [PATCH v3 05/23] tty: Remove unnecessary re-test of ldisc ref count Peter Hurley
2013-02-07 15:16 ` Jiri Slaby
2013-02-07 15:59 ` Peter Hurley
2013-02-07 16:02 ` Jiri Slaby
2013-02-05 20:20 ` [PATCH v3 06/23] tty: Fix ldisc halt sequence on hangup Peter Hurley
2013-02-05 20:20 ` [PATCH v3 07/23] tty: Strengthen no-subsequent-use guarantee of tty_ldisc_halt() Peter Hurley
2013-02-07 15:38 ` Jiri Slaby
2013-02-07 16:22 ` Peter Hurley
2013-02-05 20:20 ` [PATCH v3 08/23] tty: Halt both ldiscs concurrently Peter Hurley
2013-02-05 20:20 ` [PATCH v3 09/23] tty: Remove unnecessary buffer work flush Peter Hurley
2013-02-05 20:20 ` [PATCH v3 10/23] tty: Wait for SAK work before waiting for hangup work Peter Hurley
2013-02-05 20:20 ` [PATCH v3 11/23] n_tty: Correct unthrottle-with-buffer-flush comments Peter Hurley
2013-02-05 20:20 ` [PATCH v3 12/23] tty: Kick waiters _after_ the ldisc is locked Peter Hurley
2013-02-07 15:47 ` Jiri Slaby
2013-02-08 3:16 ` Peter Hurley
2013-02-05 20:20 ` [PATCH v3 13/23] n_tty: Fully initialize ldisc before restarting buffer work Peter Hurley
2013-02-05 20:20 ` [PATCH v3 14/23] tty: Don't reenable already enabled ldisc Peter Hurley
2013-02-05 20:20 ` [PATCH v3 15/23] tty: Don't restart ldisc on hangup if racing ldisc kill Peter Hurley
2013-02-05 20:20 ` [PATCH v3 16/23] tty: Make core responsible for synchronizing its work Peter Hurley
2013-02-05 21:04 ` Peter Hurley
2013-02-05 20:20 ` [PATCH v3 17/23] tty: Document lock requirements to halt ldisc Peter Hurley
2013-02-05 20:20 ` [PATCH v3 18/23] tty: Remove stale comment re: tty_ldisc_flush_works() Peter Hurley
2013-02-05 20:20 ` [PATCH v3 19/23] tty: Fix 'deferred reopen' ldisc comment Peter Hurley
2013-02-05 20:20 ` [PATCH v3 20/23] tty: Remove stale comment re: locking in tty_ldisc_release() Peter Hurley
2013-02-05 20:20 ` [PATCH v3 21/23] tty: Re-parent orphaned tty_set_ldisc() comments Peter Hurley
2013-02-05 20:20 ` [PATCH v3 22/23] tty: Bracket ldisc release with TTY_DEBUG_HANGUP messages Peter Hurley
2013-02-05 20:20 ` [PATCH v3 23/23] tty: Add ldisc hangup debug messages Peter Hurley
2013-02-20 20:02 ` [PATCH v4 00/32] ldisc patchset Peter Hurley
2013-02-21 2:33 ` Shawn Guo
2013-02-21 7:55 ` Sebastian Andrzej Siewior
2013-02-21 13:16 ` Sasha Levin
2013-02-21 13:38 ` Peter Hurley
2013-02-22 18:37 ` Peter Hurley
2013-02-23 15:24 ` Sasha Levin
2013-02-23 16:42 ` Sasha Levin [this message]
2013-02-27 3:08 ` Peter Hurley
2013-02-23 18:43 ` Peter Hurley
2013-02-23 20:02 ` Sasha Levin
2013-03-05 17:39 ` Peter Hurley
2013-03-05 21:18 ` Sebastian Andrzej Siewior
2013-03-11 20:44 ` [PATCH v5 00/44] " Peter Hurley
2013-03-11 20:44 ` [PATCH v5 01/44] tty: Add diagnostic for halted line discipline Peter Hurley
2013-03-11 20:44 ` [PATCH v5 02/44] n_tty: Factor packet mode status change for reuse Peter Hurley
2013-03-11 20:44 ` [PATCH v5 03/44] n_tty: Don't flush buffer when closing ldisc Peter Hurley
2013-03-11 20:44 ` [PATCH v5 04/44] tty: Refactor wait for ldisc refs out of tty_ldisc_hangup() Peter Hurley
2013-03-11 20:44 ` [PATCH v5 05/44] tty: Remove unnecessary re-test of ldisc ref count Peter Hurley
2013-03-11 20:44 ` [PATCH v5 06/44] tty: Fix ldisc halt sequence on hangup Peter Hurley
2013-03-11 20:44 ` [PATCH v5 07/44] tty: Relocate tty_ldisc_halt() to avoid forward declaration Peter Hurley
2013-03-11 20:44 ` [PATCH v5 08/44] tty: Strengthen no-subsequent-use guarantee of tty_ldisc_halt() Peter Hurley
2013-03-11 20:44 ` [PATCH v5 09/44] tty: Halt both ldiscs concurrently Peter Hurley
2013-03-11 20:44 ` [PATCH v5 10/44] tty: Wait for SAK work before waiting for hangup work Peter Hurley
2013-03-11 20:44 ` [PATCH v5 11/44] n_tty: Correct unthrottle-with-buffer-flush comments Peter Hurley
2013-03-11 20:44 ` [PATCH v5 12/44] n_tty: Fully initialize ldisc before restarting buffer work Peter Hurley
2013-03-11 20:44 ` [PATCH v5 13/44] tty: Don't reenable already enabled ldisc Peter Hurley
2013-03-11 20:44 ` [PATCH v5 14/44] tty: Complete ownership transfer of flip buffers Peter Hurley
2013-03-11 20:44 ` [PATCH v5 15/44] tty: Make core responsible for synchronizing its work Peter Hurley
2013-03-11 20:44 ` [PATCH v5 16/44] tty: Fix 'deferred reopen' ldisc comment Peter Hurley
2013-03-11 20:44 ` [PATCH v5 17/44] tty: Bracket ldisc release with TTY_DEBUG_HANGUP messages Peter Hurley
2013-03-11 20:44 ` [PATCH v5 18/44] tty: Add ldisc hangup debug messages Peter Hurley
2013-03-11 20:44 ` [PATCH v5 19/44] tty: Don't protect atomic operation with mutex Peter Hurley
2013-03-11 20:44 ` [PATCH v5 20/44] tty: Separate release semantics of ldisc reference Peter Hurley
2013-03-11 20:44 ` [PATCH v5 21/44] tty: Document unsafe ldisc reference acquire Peter Hurley
2013-03-11 20:44 ` [PATCH v5 22/44] tty: Fold one-line assign function into callers Peter Hurley
2013-03-11 20:44 ` [PATCH v5 23/44] tty: Locate get/put ldisc functions together Peter Hurley
2013-03-11 20:44 ` [PATCH v5 24/44] tty: Remove redundant tty_wait_until_sent() Peter Hurley
2013-03-11 20:44 ` [PATCH v5 25/44] tty: Fix recursive deadlock in tty_perform_flush() Peter Hurley
2013-03-11 21:36 ` Peter Hurley
2013-03-11 20:44 ` [PATCH v5 26/44] tty: Add read-recursive, writer-prioritized rw semaphore Peter Hurley
2013-03-18 23:58 ` Greg Kroah-Hartman
2013-03-19 1:01 ` Peter Hurley
2013-03-19 1:59 ` Greg Kroah-Hartman
2013-03-19 15:43 ` Peter Hurley
2013-03-26 23:47 ` Peter Hurley
2013-03-11 20:44 ` [PATCH v5 27/44] tty: Drop lock contention stat from ldsem trylocks Peter Hurley
2013-03-11 20:44 ` [PATCH v5 28/44] tty: Remove ldsem recursion support Peter Hurley
2013-03-18 23:59 ` Greg Kroah-Hartman
2013-03-19 0:01 ` Peter Hurley
2013-03-19 0:05 ` Greg Kroah-Hartman
2013-03-19 0:12 ` Peter Hurley
2013-03-11 20:44 ` [PATCH v5 29/44] tty: Add lock/unlock ldisc pair functions Peter Hurley
2013-03-11 20:44 ` [PATCH v5 30/44] tty: Replace ldisc locking with ldisc_sem Peter Hurley
2013-03-11 20:44 ` [PATCH v5 31/44] tty: Clarify ldisc variable Peter Hurley
2013-03-11 20:44 ` [PATCH v5 32/44] tty: Fix hangup race with TIOCSETD ioctl Peter Hurley
2013-03-11 20:44 ` [PATCH v5 33/44] tty: Clarify multiple-references comment in " Peter Hurley
2013-03-11 20:44 ` [PATCH v5 34/44] tty: Fix tty_ldisc_lock name collision Peter Hurley
2013-03-11 20:44 ` [PATCH v5 35/44] tty: Drop "tty is NULL" flip buffer diagnostic Peter Hurley
2013-03-11 20:44 ` [PATCH v5 36/44] tty: Inline ldsem down_failed() into down_{read,write}_failed() Peter Hurley
2013-03-11 20:44 ` [PATCH v5 37/44] tty: Drop ldsem wait type Peter Hurley
2013-03-11 20:44 ` [PATCH v5 38/44] tty: Drop wake type optimization Peter Hurley
2013-03-11 20:44 ` [PATCH v5 39/44] tty: Factor ldsem writer trylock Peter Hurley
2013-03-11 20:45 ` [PATCH v5 40/44] tty: Simplify lock taking for waiting writers Peter Hurley
2013-03-11 20:45 ` [PATCH v5 41/44] tty: Implement ldsem fast path write lock stealing Peter Hurley
2013-03-11 20:45 ` [PATCH v5 42/44] tty: Reduce and simplify ldsem atomic ops Peter Hurley
2013-03-11 20:45 ` [PATCH v5 43/44] tty: Early-out ldsem write lock stealing Peter Hurley
2013-03-11 20:45 ` [PATCH v5 44/44] tty: Early-out tardy ldsem readers Peter Hurley
2013-03-12 2:28 ` [PATCH v5 00/44] ldisc patchset Michel Lespinasse
2013-03-12 16:47 ` Peter Hurley
2013-03-13 11:36 ` Michel Lespinasse
2013-03-14 1:12 ` Peter Hurley
2013-03-14 7:25 ` Michel Lespinasse
2013-03-14 11:42 ` Peter Hurley
2013-03-14 12:13 ` Michel Lespinasse
2013-03-18 23:54 ` Greg Kroah-Hartman
2013-03-19 19:26 ` [PATCH 0/7] ldsem patchset Peter Hurley
2013-03-19 19:26 ` [PATCH 1/7] tty: Add timed, writer-prioritized rw semaphore Peter Hurley
2013-03-19 19:26 ` [PATCH 2/7] tty: Add lock/unlock ldisc pair functions Peter Hurley
2013-03-19 19:26 ` [PATCH 3/7] tty: Replace ldisc locking with ldisc_sem Peter Hurley
2013-03-19 19:26 ` [PATCH 4/7] tty: Clarify ldisc variable Peter Hurley
2013-03-19 19:26 ` [PATCH 5/7] tty: Fix hangup race with TIOCSETD ioctl Peter Hurley
2013-03-19 19:26 ` [PATCH 6/7] tty: Clarify multiple-references comment in " Peter Hurley
2013-03-19 19:26 ` [PATCH 7/7] tty: Fix tty_ldisc_lock name collision Peter Hurley
2013-02-20 20:02 ` [PATCH v4 01/32] tty: Add diagnostic for halted line discipline Peter Hurley
2013-02-20 20:02 ` [PATCH v4 02/32] n_tty: Factor packet mode status change for reuse Peter Hurley
2013-02-20 20:02 ` [PATCH v4 03/32] n_tty: Don't flush buffer when closing ldisc Peter Hurley
2013-02-20 20:02 ` [PATCH v4 04/32] tty: Refactor wait for ldisc refs out of tty_ldisc_hangup() Peter Hurley
2013-02-20 20:02 ` [PATCH v4 05/32] tty: Remove unnecessary re-test of ldisc ref count Peter Hurley
2013-02-20 20:02 ` [PATCH v4 06/32] tty: Fix ldisc halt sequence on hangup Peter Hurley
2013-02-20 20:02 ` [PATCH v4 07/32] tty: Relocate tty_ldisc_halt() to avoid forward declaration Peter Hurley
2013-02-20 20:02 ` [PATCH v4 08/32] tty: Strengthen no-subsequent-use guarantee of tty_ldisc_halt() Peter Hurley
2013-02-20 20:02 ` [PATCH v4 09/32] tty: Halt both ldiscs concurrently Peter Hurley
2013-02-20 20:02 ` [PATCH v4 10/32] tty: Wait for SAK work before waiting for hangup work Peter Hurley
2013-02-20 20:02 ` [PATCH v4 11/32] n_tty: Correct unthrottle-with-buffer-flush comments Peter Hurley
2013-02-20 20:02 ` [PATCH v4 12/32] n_tty: Fully initialize ldisc before restarting buffer work Peter Hurley
2013-02-20 20:03 ` [PATCH v4 13/32] tty: Don't reenable already enabled ldisc Peter Hurley
2013-02-20 20:03 ` [PATCH v4 14/32] tty: Complete ownership transfer of flip buffers Peter Hurley
2013-02-20 20:03 ` [PATCH v4 15/32] tty: Make core responsible for synchronizing its work Peter Hurley
2013-02-20 20:03 ` [PATCH v4 16/32] tty: Fix 'deferred reopen' ldisc comment Peter Hurley
2013-02-20 20:03 ` [PATCH v4 17/32] tty: Bracket ldisc release with TTY_DEBUG_HANGUP messages Peter Hurley
2013-02-20 20:03 ` [PATCH v4 18/32] tty: Add ldisc hangup debug messages Peter Hurley
2013-02-20 20:03 ` [PATCH v4 19/32] tty: Don't protect atomic operation with mutex Peter Hurley
2013-02-20 20:03 ` [PATCH v4 20/32] tty: Separate release semantics of ldisc reference Peter Hurley
2013-02-20 20:03 ` [PATCH v4 21/32] tty: Document unsafe ldisc reference acquire Peter Hurley
2013-02-20 20:03 ` [PATCH v4 22/32] tty: Fold one-line assign function into callers Peter Hurley
2013-02-20 20:03 ` [PATCH v4 23/32] tty: Locate get/put ldisc functions together Peter Hurley
2013-02-20 20:03 ` [PATCH v4 24/32] tty: Remove redundant tty_wait_until_sent() Peter Hurley
2013-02-20 20:03 ` [PATCH v4 25/32] tty: Add read-recursive, writer-prioritized rw semaphore Peter Hurley
2013-03-08 17:12 ` Peter Hurley
2013-02-20 20:03 ` [PATCH v4 26/32] tty: Add lock/unlock ldisc pair functions Peter Hurley
2013-02-20 20:03 ` [PATCH v4 27/32] tty: Replace ldisc locking with ldisc_sem Peter Hurley
2013-02-20 20:03 ` [PATCH v4 28/32] tty: Clarify ldisc variable Peter Hurley
2013-02-20 20:03 ` [PATCH v4 29/32] tty: Fix hangup race with TIOCSETD ioctl Peter Hurley
2013-02-20 20:03 ` [PATCH v4 30/32] tty: Clarify multiple-references comment in " Peter Hurley
2013-02-20 20:03 ` [PATCH v4 31/32] tty: Fix tty_ldisc_lock name collision Peter Hurley
2013-02-20 20:03 ` [PATCH v4 32/32] tty: Drop "tty is NULL" flip buffer diagnostic Peter Hurley
2013-03-05 20:50 ` [PATCH v3 00/23] ldisc fixes Sebastian Andrzej Siewior
2013-03-05 22:20 ` Peter Hurley
2013-03-05 22:39 ` Jiri Slaby
2013-03-05 23:14 ` Peter Hurley
2013-03-17 18:50 ` Sebastian Andrzej Siewior
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=5128F16E.30804@gmail.com \
--to=levinsasha928@gmail.com \
--cc=bigeasy@linutronix.de \
--cc=davej@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=ilya@ilyx.ru \
--cc=jslaby@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=michael@ellerman.id.au \
--cc=peter@hurleysoftware.com \
--cc=shawn.guo@linaro.org \
/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).