Subject: clustered pageout of anonymous pages
To: None <tech-kern@netbsd.org>
From: Marcelo Tosatti <marcelo@conectiva.com.br>
List: tech-kern
Date: 01/23/2001 20:00:55
Hi,

I was taking a look at NetBSD's UVM (which is very nice, btw) code and I
have I question about it. Please correct me if I'm wrong.
 
The swap clustering code in vm/vm_pageout.c builds cluster(s) of pages
which are not virtually contiguous in a process(es) address mapping.

Instead, it builds clusters with the pages which are found on the inactive
swap list. This allows very effective write clustering, but it does not
allow one to do per-mapping swapin readahead because the pages of a given
mapping are scattered on the disk.

Correct?

If so, what advantages/drawbacks of both (effective write clustering or
possibily of readahead) methods the designer(s) found?

I'm assuming virtually based swap allocation is easy for <Net>BSD because
one can access the vm_page->anon object of a given page, which has the
list of pages on the mapping.

Thanks