Messages in this thread |  | | Date | Tue, 2 Jan 2001 14:01:57 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: scheduling problem? |
| |
On Tue, 2 Jan 2001, Andrea Arcangeli wrote: > > > NOTE! I think that throttling writers is fine and good, but as it stands > > now, the dirty buffer balancing will throttle anybody, not just the > > writer. That's partly because of the 2.4.x mis-feature of doing the > > How can it throttle everybody and not only the writers? _Only_ the > writers calls balance_dirty.
A lot of people call mark_buffer_dirty() on one or two buffers. Things like file creation etc. Think about inode bitmap blocks that are marked dirty with the superblock held.. Ugh.
> Right way to avoid blocking with lock helds is to replace mark_buffer_dirty > with __mark_buffer_dirty() and to call balance_dirty() later when the locks are > released.
The point being that because _everybody_ should do this, we shouldn't have the "mark_buffer_dirty()" that we have. There are no really valid uses of the automatic rebalancing: either we're writing meta-data (which definitely should balance on its own _after_ the fact), or we're writing normal data (which already _does_ balance after the fact).
Right now, the automatic balancing only hurts. The stuff that hasn't been converted is probably worse off doing balancing when they don't want to, than we would be to leave the balancing altogether.
Which is why I don't like it.
Linus
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |