tech-kern archive

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

Re: uvm_pageactivate, uvm_pageenqueue and uvm_pageqlock



On Thu, Jun 05, 2008 at 01:34:38PM +0900, YAMAMOTO Takashi wrote:

> > Hi,
> > 
> > With fork-intensive workloads there is a huge amount of contention on
> > uvm_pageqlock. Most of it comes from uvm_fault_internal, which passes
> > hints to the page replacement policy on ~every fault.
> > 
> > This patch changes uvm_pageactivate() and uvm_pageenqueue() to do an
> > unlocked check to see if operation actually needs to be done. Only if
> > true does it acquire the lock and call into the page replacement policy
> > to do the work.
> > 
> >     http://www.netbsd.org/~ad/activate.diff
> > 
> > I am not sure what should happen for clockpro's uvmpdpol_pageisactive_p(),
> > though.
> > 
> > Comments?
> > 
> > Thanks,
> > Andrew
> 
> how do you think about retiring explicit activate calls and
> setting page's reference bit using atomic ops instead?

Do you mean something like this?

        http://www.netbsd.org/~ad/clock.diff

I guess we could make pageenqueue/dequeue lazy, and add a check for wired pages
in the scanner.

Andrew


Home | Main Index | Thread Index | Old Index