>
>Swap allocation is terrible. Linux uses a linear array which it scans
>looking for a free swap block. It does a relatively simple swap
>cluster cache, but eats the full linear scan if that fails which can be
>terribly nasty. The swap clustering algorithm is a piece of crap,
>too -- once swap becomes fragmented, the linux swapper falls on its
face.
>
>It does read-ahead based on the swapblk which wouldn't be bad if it
>clustered writes by object or didn't have a fragmentation problem.
>As it stands, their read clustering is useless. Swap deallocation is
>fast since they are using a simple reference count array.
>
>File read-ahead is half-hazard at best.
>
>The paging queues ( determing the age of the page and whether to
>free or clean it) need to be written... the algorithms being used
>are terrible.
>
> * For the nominal page scan, it is using a one-hand clock algorithm.
> All I can say is: Oh my god! Are they nuts? That was abandoned
> a decade ago. The priority mechanism they've implemented is nearly
> useless.
>
> * To locate pages to swap out, it takes a pass through the task list.
> Ostensibly it locates the task with the largest RSS to then try to
> swap pages out from rather then select pages that are not in use.
> From my read of the code, it also botches this badly.
>
>Linux does not appear to do any page coloring whatsoever, but it would
>not be hard to add it in.
>
Where does Linux stand, three years on? An O(1) scheduler is
nice, but I tell you what'd be even nicer...
coming out for some food, (it's dark out)
Duraid
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/