]> git.hungrycats.org Git - linux/commitdiff
[PATCH] reduce CPU cost in loop
authorAndrew Morton <akpm@digeo.com>
Fri, 22 Nov 2002 03:30:52 +0000 (19:30 -0800)
committerLinus Torvalds <torvalds@penguin.transmeta.com>
Fri, 22 Nov 2002 03:30:52 +0000 (19:30 -0800)
balance_dirty_pages() is too expensive to call once-per-page.  Use the
ratelimited version.

drivers/block/loop.c
mm/page-writeback.c

index 9a309f0d06f775363e7f1cda67424a2faea67c4b..3f52eb55be9c0301c06498147a72269afdf7d9d0 100644 (file)
@@ -238,7 +238,7 @@ do_lo_send(struct loop_device *lo, struct bio_vec *bvec, int bsize, loff_t pos)
        up(&mapping->host->i_sem);
 out:
        kunmap(bvec->bv_page);
-       balance_dirty_pages(mapping);
+       balance_dirty_pages_ratelimited(mapping);
        return ret;
 
 unlock:
index f5457d552f32204595e48f008ed43e1dfb4da084..b0d4c3cc7fc4029800fbea798b8ca7688e0d22d3 100644 (file)
@@ -166,7 +166,6 @@ void balance_dirty_pages(struct address_space *mapping)
        if (!writeback_in_progress(bdi) && ps.nr_dirty > background_thresh)
                pdflush_operation(background_writeout, 0);
 }
-EXPORT_SYMBOL_GPL(balance_dirty_pages);
 
 /**
  * balance_dirty_pages_ratelimited - balance dirty memory state
@@ -200,6 +199,7 @@ void balance_dirty_pages_ratelimited(struct address_space *mapping)
        }
        put_cpu();
 }
+EXPORT_SYMBOL_GPL(balance_dirty_pages_ratelimited);
 
 /*
  * writeback at least _min_pages, and keep writing until the amount of dirty