Re: [PATCH 0/13] maps: pagemap, kpagemap, and related cleanups

Nick Piggin
2007-04-13T00:26:08Z

William Lee Irwin III wrote:
> On Thu, 12 Apr 2007 16:10:50 -0700 William Lee Irwin III <wli@holomorphy.com> wrote:
>
>>>This solves a real-life problem for Oracle system monitoring software
>>>(specifically EM). Among the tasks it must carry out is determining
>>>per-process memory footprint of a set of cooperating tasks (i.e. Oracle
>>>processes). RSS is inadequate for this due to page sharing; this work
>>>provides sufficient information to determine what EM needs.
>
>
> On Thu, Apr 12, 2007 at 04:32:35PM -0700, Andrew Morton wrote:
>
>>Not a good idea to expose raw flags in this manner - it changes at the drop
>>of a hat. We'd need to also expose the kernel's PG_foo-to-bitnumber
>>mapping to make this viable.
>>Not a good idea to use page->_count: page_count() will be more stable.
>>Otherwise OK, I guess: the interpretation of the page refcount is unlikely
>>to change much over time.
>
>
> EM wants to determine page_mapcount() for the most part for the
> purposes of determining "uniquely attributable RSS" (my ca. 2004
> nomenclature) or "proportional RSS" (mpm's more recent nomenclature);
> as things now stand it will have to infer them by maintaining a table
> of pfn's and mappings thereof, but at least that can be done with it.

I don't know whether you can easily determine page_mapcount with
page_count and flags, though (count gives you an educated guess,
but mapcount is the real thing).

page_mapcount sounds very reasonable to export. It is directly
tied with the userspace concept of mapping pages. page_count doesn't
seem very useful (and if you must have it, please use page_count),
neither does page flags.

You could have a bit indicating whether the page is free or not (but
that doesn't tell you much that meminfo or zoneinfo or buddyinfo does
not). Dirty/writeback/referenced/uptodate maybe?... I'm stumped,
what's flags for?

--
SUSE Labs, Novell Inc.