Date: Sun, 25 Jul 2010 00:31:44 +0100 From: RW <rwmaillists@googlemail.com> To: freebsd-hackers@freebsd.org Subject: Re: pageout question Message-ID: <20100725003144.3cfead39@gumby.homeunix.com> In-Reply-To: <4C4B4BAB.3000005@freebsd.org> References: <4C4B4BAB.3000005@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 24 Jul 2010 23:23:07 +0300
Andriy Gapon <avg@freebsd.org> wrote:
>
> There is a good deal of comments in the vm_pageout.c code that imply
> that we use a hysteresis approach to deal with low available pages
> condition.
>
>
> In general, the hysteresis, the comments and the code make sense.
> My doubt, though, is about the block of code that is right below the
> comment quoted above:
> if (vm_pages_needed && !vm_page_count_min()) {
> if (!vm_paging_needed())
> vm_pages_needed = 0;
> wakeup(&cnt.v_free_count);
> }
As I understand it the hysteresis is done inside vm_pageout_scan, and
the expectation is that one pass will typically satisfy this because the
design aims to keep enough clean pages in the inactive queue.
I'm not sure if the vm_paging_needed() call is correct or not, but it
may be that that the intent is to avoid immediately going back to a
depleted inactive queue when cache+free is within normal bounds,
because it could result in avoidable paging to swap.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100725003144.3cfead39>
