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



> > how do you think about retiring explicit activate calls and
> > setting page's reference bit using atomic ops instead?

what i was thinking here was pmap_set_reference(pg) or its MI equivalent.

> Here's a better patch than the one I posted earlier:
> 
>       http://www.netbsd.org/~ad/uvm.diff

a while ago, page-loaning code was changed so that loaned pages are left
on the queue.  the pagedaemon later breaks loans when it picked them.
i think that page wiring can be done in a similar way.
ie. in uvm_pagewire, simply mark the page as wired and leave it on the queue.
iff the pagedaemon picked the marked page, dequeue it.

> What about making all pages available to the page scanner for inspection,
> instead of enqueueing and dequeueing them regularly? I think that with more
> than 1 CPU, it's likely to cost a lot less CPU time than we currently waste
> spinning on uvm_pageqlock.

it's basically what linux currently does.
i've heard that, with certain workloads, it suffered from cpu-hogging
of page scanner.  eg. when an application mlock a lot of pages.

YAMAMOTO Takashi


Home | Main Index | Thread Index | Old Index