public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Matt Mackall <mpm@selenic.com>
To: Fengguang Wu <wfg@mail.ustc.edu.cn>
Cc: Andrew Morton <akpm@osdl.org>,
	Jeremy Fitzhardinge <jeremy@goop.org>,
	David Rientjes <rientjes@google.com>,
	John Berthels <jjberthels@gmail.com>,
	Nick Piggin <nickpiggin@yahoo.com.au>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/4] maps: /proc/<pid>/pmaps interface - memory maps in granularity of pages
Date: Sat, 18 Aug 2007 01:40:42 -0500	[thread overview]
Message-ID: <20070818064042.GQ30556@waste.org> (raw)
In-Reply-To: <20070818024831.GA7856@mail.ustc.edu.cn>

On Sat, Aug 18, 2007 at 10:48:31AM +0800, Fengguang Wu wrote:
> Matt,
> 
> On Fri, Aug 17, 2007 at 11:58:08AM -0500, Matt Mackall wrote:
> > On Fri, Aug 17, 2007 at 02:47:27PM +0800, Fengguang Wu wrote:
> > > It's not easy to do direct performance comparisons between pmaps and
> > > pagemap/kpagemap. However some close analyzes are still possible :)
> > > 
> > > 1) code size
> > > pmaps                   ~200 LOC
> > > pagemap/kpagemap        ~300 LOC
> > > 
> > > 2) dataset size
> > > take for example my running firefox on Intel Core 2:
> > > VSZ             400 MB
> > > RSS              64 MB, or 16k pages
> > > pmaps            64 KB, wc shows 2k lines, or so much page ranges
> > > pagemap         800 KB, could be heavily optimized by returning partial data
> > 
> > I take it you're in 64-bit mode?
> 
> Yes. That will be the common case.
> 
> > You're right, this data compresses well in many circumstances. I
> > suspect it will suffer under memory pressure though. That will
> > fragment the ranges in-memory and also fragment the active bits. The
> > worst case here is huge, of course, but realistically I'd expect
> > something like 2x-4x.
> 
> Not likely to degrade even under memory pressure ;)
> 
> The compress_ratio = (VSZ:RSS) * (RSS:page_ranges).
> - On fresh startup and no memory pressure,
>   - the VSZ:RSS ratio of ALL processes are 4516796KB:457048KB ~= 10:1.
>   - the firefox case shows a (RSS:page_ranges) of 16k:2k ~= 8:1.

Yes.

> - On memory pressure,
>   - as VSZ goes up, RSS will be bounded by physical memory.
>     So VSZ:RSS ratio actually goes up with memory pressure.

And yes.

But that's not what I'm talking about. You're likely to have more
holes in your ranges with memory pressure as things that aren't active
get paged or swapped out and back in. And because we're walking the
LRU more rapidly, we'll flip over a lot of the active bits more often
which will mean more output.

>   - page range is a good unit of locality. They are more likely to be
>     reclaimed as a whole. So (RSS:page_ranges) wouldn't degrade as much.

There is that. The relative magnitude of the different effects is
unclear. But it is clear that the worst case for pmap is much worse
than pagemap (two lines per page of RSS?). 

> > But there are still the downsides I have mentioned:
> > 
> > - you don't get page frame numbers
> 
> True. I guess PFNs are meaningless to a normal user?

They're useful for anyone who's trying to look at the system as a
whole.
 
> > - you can't do random access
> 
> Not for now.
> 
> It would be trivial to support seek-by-address semantic: the seqfile
> operations already iterate by addresses. Only that we cannot do it via
> the regular read/pread/seek interfaces. They have different semantic
> on fpos. However, tricks like ioctl(begin_addr, end_addr) can be
> employed if necessary.

I suppose. But if you're willing to stomach that sort of thing, you
might as well use a simple binary interface.
 
-- 
Mathematics is the supreme nostalgia of our time.

  parent reply	other threads:[~2007-08-18  6:39 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20070816220516.782145952@mail.ustc.edu.cn>
2007-08-16 22:05 ` [PATCH 0/4] process memory footprints in proc/<pid>/[s|p]maps Fengguang Wu
     [not found] ` <20070816220849.064901548@mail.ustc.edu.cn>
2007-08-16 22:05   ` [PATCH 1/4] maps: PSS(proportional set size) accounting in smaps Fengguang Wu
2007-08-17  2:13   ` Matt Mackall
     [not found]     ` <20070817024443.GA5521@mail.ustc.edu.cn>
2007-08-17  2:44       ` Fengguang Wu
     [not found] ` <20070816220849.313377588@mail.ustc.edu.cn>
2007-08-16 22:05   ` [PATCH 3/4] maps: introduce generic_maps_open() Fengguang Wu
     [not found] ` <20070816220849.472883642@mail.ustc.edu.cn>
2007-08-16 22:05   ` [PATCH 4/4] maps: /proc/<pid>/pmaps interface - memory maps in granularity of pages Fengguang Wu
2007-08-17  2:38   ` Matt Mackall
     [not found]     ` <20070817034437.GC5521@mail.ustc.edu.cn>
2007-08-17  3:44       ` Fengguang Wu
2007-08-17  3:56       ` Matt Mackall
     [not found]     ` <20070817064727.GA6723@mail.ustc.edu.cn>
2007-08-17  6:47       ` Fengguang Wu
2007-08-17 16:58       ` Matt Mackall
     [not found]         ` <20070818024831.GA7856@mail.ustc.edu.cn>
2007-08-18  2:48           ` Fengguang Wu
2007-08-18  6:40           ` Matt Mackall [this message]
     [not found]             ` <20070818103146.GA6744@mail.ustc.edu.cn>
2007-08-18 10:31               ` Fengguang Wu
     [not found]             ` <20070818084531.GB5277@mail.ustc.edu.cn>
2007-08-18  8:45               ` Fengguang Wu
2007-08-18 17:22               ` Matt Mackall
     [not found]                 ` <20070819004008.GA5297@mail.ustc.edu.cn>
2007-08-19  0:40                   ` Fengguang Wu
     [not found] ` <20070816220849.192029043@mail.ustc.edu.cn>
2007-08-16 22:05   ` [PATCH 2/4] maps: address based vma walking Fengguang Wu
2007-08-17  2:16   ` Matt Mackall
     [not found]     ` <20070817025454.GB5521@mail.ustc.edu.cn>
2007-08-17  2:54       ` Fengguang Wu
     [not found] <20070819075410.411207640@mail.ustc.edu.cn>
     [not found] ` <20070819075547.785390741@mail.ustc.edu.cn>
2007-08-19  7:54   ` [PATCH 4/4] maps: /proc/<pid>/pmaps interface - memory maps in granularity of pages Fengguang Wu

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=20070818064042.GQ30556@waste.org \
    --to=mpm@selenic.com \
    --cc=akpm@osdl.org \
    --cc=jeremy@goop.org \
    --cc=jjberthels@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nickpiggin@yahoo.com.au \
    --cc=rientjes@google.com \
    --cc=wfg@mail.ustc.edu.cn \
    /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