From: Wu Fengguang <fengguang.wu@intel.com>
To: Nai Xia <nai.xia@gmail.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 14:44:06 +0800 [thread overview]
Message-ID: <20090609064406.GA5490@localhost> (raw)
In-Reply-To: <ab418ea90906081018o56f036c4md200a605921337c3@mail.gmail.com>
On Tue, Jun 09, 2009 at 01:18:26AM +0800, Nai Xia wrote:
> 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
> > A 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:
> >
> > A before A A A after A A programs
> > A A 0.02 A A A A 0.02 A A N xeyes
> > A A 0.75 A A A A 0.76 A A N firefox
> > A A 2.02 A A A A 1.88 A A N nautilus
> > A A 3.36 A A A A 3.17 A A N nautilus --browser
> > A A 5.26 A A A A 4.89 A A N gthumb
> > A A 7.12 A A A A 6.47 A A N gedit
> > A A 9.22 A A A A 8.16 A A N xpdf /usr/share/doc/shared-mime-info/shared-mime-info-spec.pdf
> > A 13.58 A A A 12.55 A A N xterm
> > A 15.87 A A A 14.57 A A N mlterm
> > A 18.63 A A A 17.06 A A N gnome-terminal
> > A 21.16 A A A 18.90 A A N urxvt
> > A 26.24 A A A 23.48 A A N gnome-system-monitor
> > A 28.72 A A A 26.52 A A N gnome-help
> > A 32.15 A A A 29.65 A A N gnome-dictionary
> > A 39.66 A A A 36.12 A A N /usr/games/sol
> > A 43.16 A A A 39.27 A A N /usr/games/gnometris
> > A 48.65 A A A 42.56 A A N /usr/games/gnect
> > A 53.31 A A A 47.03 A A N /usr/games/gtali
> > A 58.60 A A A 52.05 A A N /usr/games/iagno
> > A 65.77 A A A 55.42 A A N /usr/games/gnotravex
> > A 70.76 A A A 61.47 A A N /usr/games/mahjongg
> > A 76.15 A A A 67.11 A A N /usr/games/gnome-sudoku
> > A 86.32 A A A 75.15 A A N /usr/games/glines
> > A 92.21 A A A 79.70 A A N /usr/games/glchess
> > A 103.79 A A A 88.48 A A N /usr/games/gnomine
> > A 113.84 A A A 96.51 A A N /usr/games/gnotski
> > A 124.40 A A A 102.19 A A N /usr/games/gnibbles
> > A 137.41 A A A 114.93 A A N /usr/games/gnobots2
> > A 155.53 A A A 125.02 A A N /usr/games/blackjack
> > A 179.85 A A A 135.11 A A N /usr/games/same-gnome
> > A 224.49 A A A 154.50 A A N /usr/bin/gnome-window-properties
> > A 248.44 A A A 162.09 A A N /usr/bin/gnome-default-applications-properties
> > A 282.62 A A A 173.29 A A N /usr/bin/gnome-at-properties
> > A 323.72 A A A 188.21 A A N /usr/bin/gnome-typing-monitor
> > A 363.99 A A A 199.93 A A N /usr/bin/gnome-at-visual
> > A 394.21 A A A 206.95 A A N /usr/bin/gnome-sound-properties
> > A 435.14 A A A 224.49 A A N /usr/bin/gnome-at-mobility
> > A 463.05 A A A 234.11 A A N /usr/bin/gnome-keybinding-properties
> > A 503.75 A A A 248.59 A A N /usr/bin/gnome-about-me
> > A 554.00 A A A 276.27 A A N /usr/bin/gnome-display-properties
> > A 615.48 A A A 304.39 A A N /usr/bin/gnome-network-preferences
> > A 693.03 A A A 342.01 A A N /usr/bin/gnome-mouse-properties
> > A 759.90 A A A 388.58 A A N /usr/bin/gnome-appearance-properties
> > A 937.90 A A A 508.47 A A N /usr/bin/gnome-control-center
> > A 1109.75 A A A 587.57 A A N /usr/bin/gnome-keyboard-properties
> > A 1399.05 A A A 758.16 A A N : oocalc
> > A 1524.64 A A A 830.03 A A N : oodraw
> > A 1684.31 A A A 900.03 A A N : ooimpress
> > A 1874.04 A A A 993.91 A A N : oomath
> > A 2115.12 A A 1081.89 A A N : ooweb
> > A 2369.02 A A 1161.99 A A N : oowriter
> >
> > Note that the oo* commands are actually commented out.
> >
> > The vmstat numbers are (some relevant ones are marked with *):
> >
> > A A A A A A A A A A A A A A before A A after
> > A nr_free_pages A A A A A A A 1293 A A A 3898
> > A nr_inactive_anon A A A A A 59956 A A 53460
> > A nr_active_anon A A A A A A 26815 A A 30026
> > A nr_inactive_file A A A A A 2657 A A A 3218
> > A nr_active_file A A A A A A 2019 A A A 2806
> > A nr_unevictable A A A A A A 4 A A A A 4
> > A nr_mlock A A A A A A A A A 4 A A A A 4
> > A nr_anon_pages A A A A A A A 26706 A A 27859
> > *nr_mapped A A A A A A A A A 3542 A A A 4469
> > A nr_file_pages A A A A A A A 72232 A A 67681
> > A nr_dirty A A A A A A A A A 1 A A A A 0
> > A nr_writeback A A A A A A A 123 A A A 19
> > A nr_slab_reclaimable A A A A 3375 A A A 3534
> > A nr_slab_unreclaimable A A A 11405 A A 10665
> > A nr_page_table_pages A A A A 8106 A A A 7864
> > A nr_unstable A A A A A A A A 0 A A A A 0
> > A nr_bounce A A A A A A A A A 0 A A A A 0
> > *nr_vmscan_write A A A A A A 394776 A A 230839
> > A nr_writeback_temp A A A A A 0 A A A A 0
> > A numa_hit A A A A A A A A A 6843353 A 3318676
> > A numa_miss A A A A A A A A A 0 A A A A 0
> > A numa_foreign A A A A A A A 0 A A A A 0
> > A numa_interleave A A A A A A 1719 A A A 1719
> > A numa_local A A A A A A A A 6843353 A 3318676
> > A numa_other A A A A A A A A 0 A A A A 0
> > *pgpgin A A A A A A A A A A 5954683 A 2057175
> > *pgpgout A A A A A A A A A A 1578276 A 922744
> > *pswpin A A A A A A A A A A 1486615 A 512238
> > *pswpout A A A A A A A A A A 394568 A A 230685
> > A pgalloc_dma A A A A A A A A 277432 A A 56602
> > A pgalloc_dma32 A A A A A A A 6769477 A 3310348
> > A pgalloc_normal A A A A A A 0 A A A A 0
> > A pgalloc_movable A A A A A A 0 A A A A 0
> > A pgfree A A A A A A A A A A 7048396 A 3371118
> > A pgactivate A A A A A A A A 2036343 A 1471492
> > A pgdeactivate A A A A A A A 2189691 A 1612829
> > A pgfault A A A A A A A A A A 3702176 A 3100702
> > *pgmajfault A A A A A A A A 452116 A A 201343
> > A pgrefill_dma A A A A A A A 12185 A A 7127
> > A pgrefill_dma32 A A A A A A 334384 A A 653703
> > A pgrefill_normal A A A A A A 0 A A A A 0
> > A pgrefill_movable A A A A A 0 A A A A 0
> > A pgsteal_dma A A A A A A A A 74214 A A 22179
> > A pgsteal_dma32 A A A A A A A 3334164 A 1638029
> > A pgsteal_normal A A A A A A 0 A A A A 0
> > A pgsteal_movable A A A A A A 0 A A A A 0
> > A pgscan_kswapd_dma A A A A A 1081421 A 1216199
> > A pgscan_kswapd_dma32 A A A A 58979118 A 46002810
> > A pgscan_kswapd_normal A A A 0 A A A A 0
> > A pgscan_kswapd_movable A A A 0 A A A A 0
> > A pgscan_direct_dma A A A A A 2015438 A 1086109
> > A pgscan_direct_dma32 A A A A 55787823 A 36101597
> > A pgscan_direct_normal A A A 0 A A A A 0
> > A pgscan_direct_movable A A A 0 A A A A 0
> > A pginodesteal A A A A A A A 3461 A A A 7281
> > A slabs_scanned A A A A A A A 564864 A A 527616
> > A kswapd_steal A A A A A A A 2889797 A 1448082
> > A kswapd_inodesteal A A A A A 14827 A A 14835
> > A pageoutrun A A A A A A A A 43459 A A 21562
> > A allocstall A A A A A A A A 9653 A A A 4032
> > A pgrotated A A A A A A A A A 384216 A A 228631
> > A htlb_buddy_alloc_success A 0 A A A A 0
> > A htlb_buddy_alloc_fail A A A 0 A A A A 0
> > A unevictable_pgs_culled A A 0 A A A A 0
> > A unevictable_pgs_scanned A A 0 A A A A 0
> > A unevictable_pgs_rescued A A 0 A A A A 0
> > A unevictable_pgs_mlocked A A 4 A A A A 4
> > A unevictable_pgs_munlocked A 0 A A A A 0
> > A unevictable_pgs_cleared A A 0 A A A A 0
> > A unevictable_pgs_stranded A 0 A A A A 0
> > A unevictable_pgs_mlockfreed 0 A A A A 0
> >
> > --
> > To unsubscribe, send a message with 'unsubscribe linux-mm' in
> > the body to majordomo@kvack.org. A 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>
> >
--
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>
next prev parent reply other threads:[~2009-06-09 6:18 UTC|newest]
Thread overview: 70+ 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
2009-06-09 6:44 ` Wu Fengguang [this message]
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
[not found] ` <1242485776.32543.834.camel@laptop>
[not found] ` <20090617141135.0d622bfe@jbarnes-g45>
2009-06-18 1:25 ` [PATCH 0/3] make mapped executable pages the first class citizen 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
2009-06-08 9:10 [PATCH 0/3] make mapped executable pages the first class citizen (with test cases) Wu Fengguang
2009-06-08 9:10 ` [PATCH 2/3] vmscan: make mapped executable pages the first class citizen Wu Fengguang
2009-06-08 15:34 ` Christoph Lameter
2009-06-08 17:30 ` Nai Xia
2009-06-09 3:28 ` 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=20090609064406.GA5490@localhost \
--to=fengguang.wu@intel.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=cl@linux-foundation.org \
--cc=elladan@eskimo.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=nai.xia@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).