]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/commitdiff
Add a patch for speedup cache writeback.
authorArne Fitzenreiter <arne_f@ipfire.org>
Sat, 16 Oct 2010 10:12:31 +0000 (12:12 +0200)
committerArne Fitzenreiter <arne_f@ipfire.org>
Sat, 16 Oct 2010 10:12:31 +0000 (12:12 +0200)
lfs/linux
lfs/linux-pae
src/patches/linux-2.6-vmscan_remove_wait_on_page_writeback.patch [new file with mode: 0644]

index 4e465bbccc50b0c2d10b4c7320060b933cdf5a0c..2955ac6ccb5043964e344294070fd9bedb82323e 100644 (file)
--- a/lfs/linux
+++ b/lfs/linux
@@ -131,6 +131,9 @@ endif
        # Reiser4 (don't check if fail (some patches are already in xen patchset)
        -cd $(DIR_APP) && bzcat $(DIR_DL)/reiser4-for-2.6.32.patch.bz2 | patch -Np1
 
+       # Fix lag's at cache access (eg. quit of mc)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6-vmscan_remove_wait_on_page_writeback.patch
+
        # ipp2p 0.8.2-pomng
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-ipp2p-0.8.2-pomng.patch
 
index cbaeefe333df669026479b2cd58987d1fb5ee014..d71a0cf944a41fbd48ad5ab8069f1c6f713f66ac 100644 (file)
@@ -23,6 +23,9 @@
 ###############################################################################
 
 include Config
+
+VER       = kernel
+
 include linux
 
 PROG      = linux-pae
diff --git a/src/patches/linux-2.6-vmscan_remove_wait_on_page_writeback.patch b/src/patches/linux-2.6-vmscan_remove_wait_on_page_writeback.patch
new file mode 100644 (file)
index 0000000..02e9cd1
--- /dev/null
@@ -0,0 +1,37 @@
+--- linux-next.orig/mm/vmscan.c        2010-07-28 16:22:21.000000000 +0800
++++ linux-next/mm/vmscan.c     2010-07-28 16:23:35.000000000 +0800
+@@ -324,8 +324,7 @@ typedef enum {
+  * pageout is called by shrink_page_list() for each dirty page.
+  * Calls ->writepage().
+  */
+-static pageout_t pageout(struct page *page, struct address_space *mapping,
+-                                              enum pageout_io sync_writeback)
++static pageout_t pageout(struct page *page, struct address_space *mapping)
+ {
+       /*
+        * If the page is dirty, only perform writeback if that write
+@@ -384,14 +383,6 @@ static pageout_t pageout(struct page *pa
+                       return PAGE_ACTIVATE;
+               }
+-              /*
+-               * Wait on writeback if requested to. This happens when
+-               * direct reclaiming a large contiguous area and the
+-               * first attempt to free a range of pages fails.
+-               */
+-              if (PageWriteback(page) && sync_writeback == PAGEOUT_IO_SYNC)
+-                      wait_on_page_writeback(page);
+-
+               if (!PageWriteback(page)) {
+                       /* synchronous write or broken a_ops? */
+                       ClearPageReclaim(page);
+@@ -727,7 +718,7 @@ static unsigned long shrink_page_list(st
+                               goto keep_locked;
+                       /* Page is dirty, try to write it out here */
+-                      switch (pageout(page, mapping, sync_writeback)) {
++                      switch (pageout(page, mapping)) {
+                       case PAGE_KEEP:
+                               goto keep_locked;
+                       case PAGE_ACTIVATE:
+