Re: [PATCH] VM: Implements the swap-out page-clustering technique

From: Li Yu
Date: Mon Sep 08 2008 - 06:31:40 EST


Li Yu åé:
hamidreza jahanjou åé:
2008/9/8, Li Yu <raise.sail@xxxxxxxxx>:
And the linear searching for whole address space of a vma is not good
idea too, really.

+ if (!page_allowed_in_cluster(cursor_page, ci))
+ continue;


Thank you for the review and comments. You are right in that searching
the whole process address space is not a good idea. The idea is to
make the scan range flexible, thus normally, assuming that the code
has been well-tuned, only a very limited number of VMA's are scanned.

In general, i think that the cluster size and the scan range should be
tuned depending on the backing storage characteristics and the
low-on-memory severity. Like any VM code, this one needs tuning.

BTW, the code could be implemented much more elegantly if the VMA's
were connected using a doubly-linked list. I wonder if there are
enought other codes with the same situation to justify making it
doubly-linked.

You are welcome!

I think that scanning one vma each task is enough.

The goal of swapoutclustering is to reduce disk heads movement while swapping in, it is based on space/time locality. I think that different vmas implied different using pattern, which also means they have different in program locality. Therefore, I think scanning multi vmas per task is not a good idea.

Maybe, we need a page cache searching like for anonymous mapping instead of *linear* searching in each vma.

I also have an uncompleted implementation for this feature ^_^

Good luck.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/