Re: 2.3.4: deadlocks when writing many data

Andrea Arcangeli (andrea@suse.de)
Tue, 8 Jun 1999 15:27:37 +0200 (CEST)


On Mon, 7 Jun 1999, Pavel Machek wrote:

>> Ok, I'm following up myself. This just happened again, this time at
>> 2.3.5.
>>
>> kflushd: stuck at down_failed
>> sync: stuck at wakeup_bdflush
>> more processes got stuck, some at wait_on_super
>>
>> This is more reproducible than I'd like it too. Similar crash happened
>> yesterday with nbd, these crashes are with loop in use.
>
>Ok, lets see. Random process does lock_super and then writes too much
>data (=> wakeup_bdflush). Ok, now superblock is locked and bdflush is

If kflushd would lockup in lock_super you wouldn't see down_failed but you
would only block in __wait_on_super().

>called. But due to loop, bdflush tries to write to sparse block, which

BTW, the last time I checked I noticed that the loop may also cause
deadlocks due out of request slots :(. The workaround with WRITEA in
bdflush seems to me only a way to hide such deadlock.

Andrea Arcangeli

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/