[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug 1199 (linux mm)] New - 2.4.1: prune_icache horribly inefficient
http://distro.conectiva.com.br/bugzilla/show_bug.cgi?id=1199
--- shadow/1199 Fri Feb 2 15:05:50 2001
+++ shadow/1199.tmp.12527 Fri Feb 2 15:05:50 2001
@@ -0,0 +1,33 @@
++============================================================================+
+| 2.4.1: prune_icache horribly inefficient |
++----------------------------------------------------------------------------+
+| Bug #: 1199 Product: Linux kernel MM |
+| Status: NEW Version: 2.4 (stable) |
+| Resolution: Platform: All |
+| Severity: minor OS/Version: Linux |
+| Priority: P2 Component: linux mm |
++----------------------------------------------------------------------------+
+| Assigned To: linux-mm-bugs@nl.linux.org |
+| Reported By: riel@conectiva.com.br |
+| CC list: Cc: |
++----------------------------------------------------------------------------+
+| URL: |
++============================================================================+
+| DESCRIPTION |
+fs/inode.c::prune_icache() is horribly inefficient and has the potential to make
+kswapd (or applications) block on IO for a very long time.
+
+Near the top of prune_icache():
+ /* go simple and safe syncing everything before starting */
+ sync_all_inodes();
+
+The sync_all_inodes() ends up doing an fsync on all inodes in the system - in
+sync_one() - and waiting for the data to be flushed synchronously.
+
+What we would want instead is to get rid of the call to sync_all_inodes() and
+add code to sync out those dirty inodes - with no data pages attached - that we
+want to free .. asynchronously.
+
+This is mostly a performance issue, but it looks like an easy to fix problem
+that doesn't involve much new code ... just a sync_one() variant that leaves the
+data pages alone and syncs dirty inodes with no data pages attached.
\ No newline at end of file
-
Linux-mm-bugs: bugzilla list for the Linux-MM subsystem
Archive: http://mail.nl.linux.org/linux-mm-bugs/
Web site: http://www.linux.eu.org/Linux-MM/
Development: linux-mm@kvack.org