Messages in this thread | | | Date | Wed, 27 May 2009 11:20:53 +0200 | From | Jens Axboe <> | Subject | Re: [PATCH 0/12] Per-bdi writeback flusher threads v7 |
| |
On Wed, May 27 2009, Damien Wyart wrote: > > > > OK, I spotted the problem. If we fallback to the on-stack allocation in > > > > bdi_writeback_all(), then we do the wait for the work completion with > > > > the bdi_lock mutex held. This can deadlock with bdi_forker_task(), so if > > > > we require that to be invoked to make progress (happens if a thread > > > > needs to be restarted), then we have a deadlock on that mutex. > > > > > I'll cook up a fix for this, but probably not before the morning. > > > > Untested fix. I think it should work, but I haven't run it here yet. > > > Thanks for your feedback and explanations. Will not be able to test the > > patch before the afternoon. Will then give feedback as soon as I can. Of > > course, I can also test a new fix or series if you send one in the > > morning, after your own testing. > > Just ran a quick test with your fix applied and ran into the same > problem: manual sync stays in D state. I could capture SysRq-T, I am > attaching part of the output (which was very big and continuously > displaying).
Yeah, that patch was still buggy. I have it fixed now locally, I'll post a v8 within the hour!
-- Jens Axboe
| |