Re: [PATCH][5/8] proc: export mlocked pages info through "/proc/meminfo: Wired"

Stone Wang
2006-03-22T06:02:44Z

2006/3/21, Dave Hansen <haveblue@us.ibm.com>:
> On Mon, 2006-03-20 at 08:37 -0500, Stone Wang wrote:
> > --- linux-2.6.15.orig/include/linux/mm.h 2006-01-02 22:21:10.000000000 -0500
> > +++ linux-2.6.15/include/linux/mm.h 2006-03-07 01:49:12.000000000 -0500
> > @@ -218,6 +221,10 @@
> > unsigned long flags; /* Atomic flags, some possibly
> > * updated asynchronously */
> > atomic_t _count; /* Usage count, see below. */
> > + unsigned short wired_count; /* Count of wirings of the page.
> > + * If not zero,the page would be SetPageWired,
> > + * and put on Wired list of the zone.
> > + */
> > atomic_t _mapcount; /* Count of ptes mapped in mms,
> > * to show when page is mapped
> > * & limit reverse map searches.
>
> We're usually pretty picky about adding stuff to 'struct page'. It
> _just_ fits inside a cacheline on most 32-bit architectures.
>
> Can this wired_count not be derived at runtime? It seems like it would
> be possible to run through all VMAs mapping the page, and determining
> how many of them are VM_LOCKED. Would that be too slow?

It can be derived, but perhaps would made code not that clear.

I will try accroding to your comments, and i think there could be
fast scanning of the vma list for this purpose.

> Also, does it matter how many times it is locked, or just that
> _somebody_ has it locked?

For now, it just matters somebody has it locked.
When munlock a page, it matters somebody else has it locked.

>
> -- Dave