Port-acorn26 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: uarea swap-out

Andrew Doran <ad%netbsd.org@localhost> wrote:
> On Fri, Aug 28, 2009 at 10:59:06PM +0100, Mindaugas Rasiukevicius wrote:
> > http://www.netbsd.org/~rmind/uarea_swapout4.diff
> - Suggest leaving the ps keywords in place and documented.  Removing them
>   could break scripts, and leaving them in serves as a reminder not to reuse
>   the same flag letters in the display.  top and systat are by and large
>   visual so I don't have the same concern about them.  Benfit of removing
>   them is only cosmetic.

Makes sense, but I think ps(1) man page should be updated. We can leave
comments in the source code about re-using of letters.

> - You can probably get rid of XS_CTL_DATA_ONSTACK.

Will do.

> - lwp_t::l_swaplock: worth leaving as a reserved field?

It is a struct, prefer to clean it up.

> - uvmexp_sysctl::swapins, swapouts: would leave these and not rename so you
>   don't break compilation of third party software.  Consider the various X
>   widgets that display graphs and so on.

Reasonable point. For now, I will also leave the members in struct uvmexp,
because vmstat(1) is using it (vmstat should be fixed!).

In the long term, however, it would be good to invent some dynamic mechanism
to get this data. Growing compat structures is a pain to maintain.

> - As an aside, elimination of pmap_collect() gets us a closer to the
>   simplification of pmap locking that I proposed earlier this year - where
>   MD page manipluation are implicitly locked by caller using the containing
>   object's lock (uvm_object and/or amap). It also allows lockless
>   pmap_extract() to be safe again - I can't remember if I disabled this. It
>   was unsafe because pmap_collect() was a "side channel" where PTEs and so
>   on could be ripped out from under the process even with the correct
>   uvm_object/amap locked.

Good to hear that this additionally makes further improvements easier, and
cuts another issue, with pmap_extract().


Home | Main Index | Thread Index | Old Index