Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758547AbZFIGoU (ORCPT ); Tue, 9 Jun 2009 02:44:20 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757613AbZFIGoJ (ORCPT ); Tue, 9 Jun 2009 02:44:09 -0400 Received: from mga14.intel.com ([143.182.124.37]:23261 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756982AbZFIGoI (ORCPT ); Tue, 9 Jun 2009 02:44:08 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.41,329,1241420400"; d="scan'208";a="152135453" Date: Tue, 9 Jun 2009 14:44:06 +0800 From: Wu Fengguang To: Nai Xia Cc: Andi Kleen , KOSAKI Motohiro , Christoph Lameter , Andrew Morton , LKML , Elladan , Nick Piggin , Johannes Weiner , Peter Zijlstra , Rik van Riel , "tytso@mit.edu" , "linux-mm@kvack.org" , "minchan.kim@gmail.com" Subject: Re: [PATCH 2/3] vmscan: make mapped executable pages the first class citizen Message-ID: <20090609064406.GA5490@localhost> References: <20090519032759.GA7608@localhost> <20090519133422.4ECC.A69D9226@jp.fujitsu.com> <20090519062503.GA9580@localhost> <87pre4nhqf.fsf@basil.nowhere.org> <20090608073944.GA12431@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 9569 Lines: 191 On Tue, Jun 09, 2009 at 01:18:26AM +0800, Nai Xia wrote: > On Mon, Jun 8, 2009 at 3:39 PM, Wu Fengguang wrote: > > On Wed, May 20, 2009 at 07:20:24PM +0800, Andi Kleen wrote: > >> One scenario that might be useful to test is what happens when some very large > >> processes, all mapped and executable exceed memory and fight each other > >> for the working set. Do you have regressions then compared to without > >> the patches? > > > > I managed to carry out some stress tests for memory tight desktops. > > The outcome is encouraging: clock time and major faults are reduced > > by 50%, and pswpin numbers are reduced to ~1/3. > > > > Here is the test scenario. > > - nfsroot gnome desktop with 512M physical memory > > - run some programs, and switch between the existing windows after > >  starting each new program. > > I think this is a story of VM_EXEC pages fighting against other kind of pages, > but as Andi said, did you test real regression case of VM_EXEC pages fighting > against each other? No. We'd better buy more memory if it's not enough for VM_EXEC pages :-) Thanks, Fengguang > " > One scenario that might be useful to test is what happens when some very large > processes, all mapped and executable exceed memory and fight each other > for the working set. Do you have regressions then compared to without > the patches? > > -Andi > " > > My experices with Compcache(http://code.google.com/p/compcache/) show that > it also has similar improvement in similar case on LTSP > (http://code.google.com/p/compcache/wiki/Performance). > But it does has a non-trivial performance loss even when doing kernel > compilation. > I am not a little surprised when Andrew said it "There must be some cost > somewhere". > > So you have found the spots where your patch doing great, > make double sure it will not do something bad in all places, > and that will be perfect. :-) > > > > > The progress timing (seconds) is: > > > >  before       after    programs > >    0.02        0.02    N xeyes > >    0.75        0.76    N firefox > >    2.02        1.88    N nautilus > >    3.36        3.17    N nautilus --browser > >    5.26        4.89    N gthumb > >    7.12        6.47    N gedit > >    9.22        8.16    N xpdf /usr/share/doc/shared-mime-info/shared-mime-info-spec.pdf > >   13.58       12.55    N xterm > >   15.87       14.57    N mlterm > >   18.63       17.06    N gnome-terminal > >   21.16       18.90    N urxvt > >   26.24       23.48    N gnome-system-monitor > >   28.72       26.52    N gnome-help > >   32.15       29.65    N gnome-dictionary > >   39.66       36.12    N /usr/games/sol > >   43.16       39.27    N /usr/games/gnometris > >   48.65       42.56    N /usr/games/gnect > >   53.31       47.03    N /usr/games/gtali > >   58.60       52.05    N /usr/games/iagno > >   65.77       55.42    N /usr/games/gnotravex > >   70.76       61.47    N /usr/games/mahjongg > >   76.15       67.11    N /usr/games/gnome-sudoku > >   86.32       75.15    N /usr/games/glines > >   92.21       79.70    N /usr/games/glchess > >  103.79       88.48    N /usr/games/gnomine > >  113.84       96.51    N /usr/games/gnotski > >  124.40      102.19    N /usr/games/gnibbles > >  137.41      114.93    N /usr/games/gnobots2 > >  155.53      125.02    N /usr/games/blackjack > >  179.85      135.11    N /usr/games/same-gnome > >  224.49      154.50    N /usr/bin/gnome-window-properties > >  248.44      162.09    N /usr/bin/gnome-default-applications-properties > >  282.62      173.29    N /usr/bin/gnome-at-properties > >  323.72      188.21    N /usr/bin/gnome-typing-monitor > >  363.99      199.93    N /usr/bin/gnome-at-visual > >  394.21      206.95    N /usr/bin/gnome-sound-properties > >  435.14      224.49    N /usr/bin/gnome-at-mobility > >  463.05      234.11    N /usr/bin/gnome-keybinding-properties > >  503.75      248.59    N /usr/bin/gnome-about-me > >  554.00      276.27    N /usr/bin/gnome-display-properties > >  615.48      304.39    N /usr/bin/gnome-network-preferences > >  693.03      342.01    N /usr/bin/gnome-mouse-properties > >  759.90      388.58    N /usr/bin/gnome-appearance-properties > >  937.90      508.47    N /usr/bin/gnome-control-center > >  1109.75      587.57    N /usr/bin/gnome-keyboard-properties > >  1399.05      758.16    N : oocalc > >  1524.64      830.03    N : oodraw > >  1684.31      900.03    N : ooimpress > >  1874.04      993.91    N : oomath > >  2115.12     1081.89    N : ooweb > >  2369.02     1161.99    N : oowriter > > > > Note that the oo* commands are actually commented out. > > > > The vmstat numbers are (some relevant ones are marked with *): > > > >                            before    after > >  nr_free_pages              1293      3898 > >  nr_inactive_anon           59956     53460 > >  nr_active_anon             26815     30026 > >  nr_inactive_file           2657      3218 > >  nr_active_file             2019      2806 > >  nr_unevictable             4         4 > >  nr_mlock                   4         4 > >  nr_anon_pages              26706     27859 > > *nr_mapped                  3542      4469 > >  nr_file_pages              72232     67681 > >  nr_dirty                   1         0 > >  nr_writeback               123       19 > >  nr_slab_reclaimable        3375      3534 > >  nr_slab_unreclaimable      11405     10665 > >  nr_page_table_pages        8106      7864 > >  nr_unstable                0         0 > >  nr_bounce                  0         0 > > *nr_vmscan_write            394776    230839 > >  nr_writeback_temp          0         0 > >  numa_hit                   6843353   3318676 > >  numa_miss                  0         0 > >  numa_foreign               0         0 > >  numa_interleave            1719      1719 > >  numa_local                 6843353   3318676 > >  numa_other                 0         0 > > *pgpgin                     5954683   2057175 > > *pgpgout                    1578276   922744 > > *pswpin                     1486615   512238 > > *pswpout                    394568    230685 > >  pgalloc_dma                277432    56602 > >  pgalloc_dma32              6769477   3310348 > >  pgalloc_normal             0         0 > >  pgalloc_movable            0         0 > >  pgfree                     7048396   3371118 > >  pgactivate                 2036343   1471492 > >  pgdeactivate               2189691   1612829 > >  pgfault                    3702176   3100702 > > *pgmajfault                 452116    201343 > >  pgrefill_dma               12185     7127 > >  pgrefill_dma32             334384    653703 > >  pgrefill_normal            0         0 > >  pgrefill_movable           0         0 > >  pgsteal_dma                74214     22179 > >  pgsteal_dma32              3334164   1638029 > >  pgsteal_normal             0         0 > >  pgsteal_movable            0         0 > >  pgscan_kswapd_dma          1081421   1216199 > >  pgscan_kswapd_dma32        58979118  46002810 > >  pgscan_kswapd_normal       0         0 > >  pgscan_kswapd_movable      0         0 > >  pgscan_direct_dma          2015438   1086109 > >  pgscan_direct_dma32        55787823  36101597 > >  pgscan_direct_normal       0         0 > >  pgscan_direct_movable      0         0 > >  pginodesteal               3461      7281 > >  slabs_scanned              564864    527616 > >  kswapd_steal               2889797   1448082 > >  kswapd_inodesteal          14827     14835 > >  pageoutrun                 43459     21562 > >  allocstall                 9653      4032 > >  pgrotated                  384216    228631 > >  htlb_buddy_alloc_success   0         0 > >  htlb_buddy_alloc_fail      0         0 > >  unevictable_pgs_culled     0         0 > >  unevictable_pgs_scanned    0         0 > >  unevictable_pgs_rescued    0         0 > >  unevictable_pgs_mlocked    4         4 > >  unevictable_pgs_munlocked  0         0 > >  unevictable_pgs_cleared    0         0 > >  unevictable_pgs_stranded   0         0 > >  unevictable_pgs_mlockfreed 0         0 > > > > -- > > To unsubscribe, send a message with 'unsubscribe linux-mm' in > > the body to majordomo@kvack.org.  For more info on Linux MM, > > see: http://www.linux-mm.org/ . > > Don't email: email@kvack.org > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/