Re: Odd swap behavior

Rajagopal Ananthanarayanan
2000-10-04T22:05:30Z

Rik van Riel wrote:
[ ... ]
>
> Please take a look at vmscan.c::refill_inactive()
>
> Furthermore, we don't do background scanning on all
> active pages, only on the unmapped ones.

Does that mean stack pages of processes are not included?
Non-aggressive swap can hurt performance.

>
> Agreed, but I don't see an "easy" solution for 2.4.
>

Ok, I have another suggestion. Suppose you had a situation
where a page is read from disk. It has buffers. Initially
the page is active, and then aged. Where does the page go at age = 0?
In reading the current code it seems that it would go to
inactive_dirty. See how deactivate_page() chooses the dirty list
to add a page which has buffers. Of course, later page_launder()
would do try_to_free_buffers() which discards (clean) buffer heads,
and at that point the page is put on free_list/reclaimed.
Would it not be more efficient to bung clean (read) pages directly
to inactive_clean on age = 0?