Re: 2.2.16 vm fixes (fwd)

From: Andrea Arcangeli (
Date: Fri Jun 16 2000 - 10:37:06 EST

I changed the mm-fix-2 a little bit and this is an incremental patch:

--- ./fs/buffer.c.~1~ Thu Jun 15 20:21:38 2000
+++ ./fs/buffer.c Fri Jun 16 14:56:21 2000
@@ -1528,16 +1528,7 @@
                 goto succeed;
- /* also start kflushd if we find some dirty stuff */
- tmp = bh;
- do {
- if (buffer_dirty(tmp)) {
- wakeup_bdflush(0);
- goto fail;
- }
- tmp = tmp->b_this_page;
- } while (tmp != bh);
- fail:
+ wakeup_bdflush(0);
         return 0;

In the previous patch I was starting bdflush only if there was still some
dirty buffer over the page. But the fact is that there can't be dirty
buffers because I'm flushing them to disk before reaching that point (via
sync_page_buffers) ;). So basically in such patch bdflush wasn't started
and that's not a problem because we're syncing the stuff ourself and
because proabably kflushd was just running anyway at that point (wakenup
by the guy that is generating the dirty buffers). However I prefer to
wakeup kflushd anyway to be sure to fill the I/O pipeline and to
frequently unplug the disk queue and also to try to write the stuff to
disk before shrink_mmap reaches the buffers.

I did some real life test with the above change applied and it doesn't
seem to make any difference.

Global patches against 2.2.16 or 17pre2 are here:



To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

This archive was generated by hypermail 2b29 : Fri Jun 23 2000 - 21:00:12 EST