Messages in this thread | | | Date | Wed, 11 May 2016 20:03:46 +0200 | From | Michal Hocko <> | Subject | Re: [PATCH 03/11] locking, rwsem: introduce basis for down_write_killable |
| |
On Wed 11-05-16 15:59:38, Michal Hocko wrote: > On Wed 11-05-16 11:41:28, Peter Zijlstra wrote: > > On Wed, May 11, 2016 at 11:31:27AM +0200, Michal Hocko wrote: > > > > > Care to cook up a full patch? > > > > compile tested only, if someone could please test it? > > I have tried to run the test case from Tetsuo[1] with a small printk to > show the interrupted writer case: > [ 2753.596678] XXX: Writer interrupted. Woken waiters:0 > [ 2998.266978] XXX: Writer interrupted. Woken waiters:0 > > which means rwsem_atomic_update(-RWSEM_WAITING_BIAS, sem) path which is > the problematic case. oom_reaper was always able to succeed so I guess > the patch works as expected. I will leave the test run for longer to be > sure.
And just for the reference I am able to reproduce the lockup without the patch applied and the same test case and a debugging patch
[ 1522.036379] XXX interrupted. list_is_singular:1 [ 1523.040462] oom_reaper: unable to reap pid:3736 (tgid=3736)
I still cannot say I would understand why the pending RWSEM_WAITING_BIAS matters but I would probably need to look at the code again with a clean head, __rwsem_wake is quite tricky... -- Michal Hocko SUSE Labs
| |