Disk blocks for long periods
Dave Ellis
DGE at sixnetio.com
Tue Aug 6 16:16:10 EDT 2002
joakim.tjernlund at lumentis.se said:
> hmm, I just noticed that the BIG kernel lock is held while
> the erasing thread executes, since kupdate takes it in
> sync_old_buffers() (if I understand this code correctly).
> Maybe that is causing current->need_resched to be set?
>
> Also, is it not a bad idea to hold the kernel lock for,
> possibly, seconds while erasing sectors?
If it is doing that, it doesn't seem right to me. But I
thought jffs2/mtd bypassed the kernel buffers, so maybe
kupdate and sync_old_buffers() are not involved here? I don't
know much about this.
> I assume your chip does not support buffered writes? or is it
> just do_write_one_word() that is causing the log delays?
No, it doesn't support buffered writes. The long delay I saw
comes from sleeping for a jiffie during each call to
do_write_oneword().
Dave Ellis
dge at sixnetio.com
More information about the linux-mtd
mailing list