Disk blocks for long periods
David Woodhouse
dwmw2 at infradead.org
Thu Aug 8 04:08:42 EDT 2002
joakim.tjernlund at lumentis.se said:
> You can move the wake_up() call up one step(xxxx_write_words()) and
> call it just before you leave that function. I tried that and it's a
> improvement(note, I using buffer writes, so word writes should see an
> even better improvement), but that will also hold reads back(not that
> I noticed anything) until xxx_write_words has completed. We can fix
> that by having separate wait queues for read and erase.
Aren't reads held back anyway for the same reason that erases are -- by the
time we actually schedule after waking them, the chip is in FL_WRITING
again?
What happens if you stick a cond_resched() immediately after the wake_up()
(ok, after the spin_unlock).?
--
dwmw2
More information about the linux-mtd
mailing list