linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nai Xia <nai.xia@gmail.com>
To: Wu Fengguang <fengguang.wu@intel.com>
Cc: Andi Kleen <andi@firstfloor.org>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Christoph Lameter <cl@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>, Elladan <elladan@eskimo.com>,
	Nick Piggin <npiggin@suse.de>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Rik van Riel <riel@redhat.com>, "tytso@mit.edu" <tytso@mit.edu>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"minchan.kim@gmail.com" <minchan.kim@gmail.com>
Subject: Re: [PATCH 2/3] vmscan: make mapped executable pages the first class  citizen
Date: Tue, 9 Jun 2009 01:18:26 +0800	[thread overview]
Message-ID: <ab418ea90906081018o56f036c4md200a605921337c3@mail.gmail.com> (raw)
In-Reply-To: <20090608073944.GA12431@localhost>

On Mon, Jun 8, 2009 at 3:39 PM, Wu Fengguang<fengguang.wu@intel.com> 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?

"
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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
>

  parent reply	other threads:[~2009-06-08 17:25 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-16  9:00 [PATCH 0/3] make mapped executable pages the first class citizen Wu Fengguang
2009-05-16  9:00 ` [PATCH 1/3] vmscan: report vm_flags in page_referenced() Wu Fengguang
2009-05-16 13:17   ` Johannes Weiner
2009-05-16 13:37   ` Rik van Riel
2009-05-17  0:35   ` Minchan Kim
2009-05-17  1:36   ` Minchan Kim
2009-05-17  1:58     ` Wu Fengguang
2009-05-16  9:00 ` [PATCH 2/3] vmscan: make mapped executable pages the first class citizen Wu Fengguang
2009-05-16  9:28   ` Wu Fengguang
2009-05-16 13:20     ` Johannes Weiner
2009-05-17  0:38     ` Minchan Kim
2009-05-18 14:46     ` Christoph Lameter
2009-05-19  3:27       ` Wu Fengguang
2009-05-19  4:41         ` KOSAKI Motohiro
2009-05-19  4:44           ` KOSAKI Motohiro
2009-05-19  4:48             ` Wu Fengguang
2009-05-19  5:09           ` Wu Fengguang
2009-05-19  6:27             ` Wu Fengguang
2009-05-19  6:25           ` Wu Fengguang
2009-05-20 11:20             ` Andi Kleen
2009-05-20 14:32               ` Wu Fengguang
2009-05-20 14:47                 ` Andi Kleen
2009-05-20 14:56                   ` Wu Fengguang
2009-05-20 15:38                     ` Wu Fengguang
2009-06-08 12:14                       ` Nai Xia
2009-06-08 12:46                         ` Wu Fengguang
2009-06-08 15:02                           ` Nai Xia
2009-06-08  7:39               ` Wu Fengguang
2009-06-08  7:51                 ` KOSAKI Motohiro
2009-06-08  7:56                   ` Wu Fengguang
2009-06-08 17:18                 ` Nai Xia [this message]
2009-06-09  6:44                   ` Wu Fengguang
2009-05-19  7:15           ` Wu Fengguang
2009-05-19  7:20             ` KOSAKI Motohiro
2009-05-19  7:49               ` Wu Fengguang
2009-05-19  8:06                 ` KOSAKI Motohiro
2009-05-19  8:53                   ` Wu Fengguang
2009-05-19 12:28                     ` KOSAKI Motohiro
2009-05-20  1:44                       ` Wu Fengguang
2009-05-20  1:59                         ` KOSAKI Motohiro
2009-05-20  2:31                           ` Wu Fengguang
2009-05-20  2:58                             ` KOSAKI Motohiro
2009-05-19 13:24                     ` Rik van Riel
2009-05-19 15:55                       ` KOSAKI Motohiro
2009-05-19  6:39   ` Pekka Enberg
2009-05-19  6:56     ` KOSAKI Motohiro
2009-05-19  7:44     ` Peter Zijlstra
2009-05-19  8:05       ` Pekka Enberg
2009-05-19  8:12         ` Wu Fengguang
2009-05-19  8:14           ` Pekka Enberg
2009-05-19 13:14     ` Rik van Riel
2009-05-16  9:00 ` [PATCH 3/3] vmscan: merge duplicate code in shrink_active_list() Wu Fengguang
2009-05-16 13:39   ` Johannes Weiner
2009-05-16 13:47     ` Wu Fengguang
2009-05-16 14:35   ` Rik van Riel
2009-05-17  1:24   ` Minchan Kim
2009-05-16 14:56 ` [PATCH 0/3] make mapped executable pages the first class citizen Peter Zijlstra
2009-06-17 21:11   ` Jesse Barnes
2009-06-17 21:37     ` Jesse Barnes
2009-06-18  1:25     ` Wu Fengguang
2009-06-18 16:33       ` Jesse Barnes
2009-06-19  9:00       ` Wu, Fengguang
2009-06-19  9:04         ` Peter Zijlstra
2009-06-19  9:32           ` Wu Fengguang
2009-06-19 16:43             ` Jesse Barnes
2009-07-04  1:27               ` Roger WANG
2009-07-06 17:38                 ` Jesse Barnes
  -- strict thread matches above, loose matches on Subject: below --
2009-05-17  2:23 Wu Fengguang
2009-05-17  2:23 ` [PATCH 2/3] vmscan: " Wu Fengguang
2009-05-19  8:59   ` Wu Fengguang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ab418ea90906081018o56f036c4md200a605921337c3@mail.gmail.com \
    --to=nai.xia@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=cl@linux-foundation.org \
    --cc=elladan@eskimo.com \
    --cc=fengguang.wu@intel.com \
    --cc=hannes@cmpxchg.org \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=minchan.kim@gmail.com \
    --cc=npiggin@suse.de \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).