On 04/01/2014 01:16 AM, Kelley Nielsen wrote: > The function try_to_unuse() is of quadratic complexity, with a lot of > wasted effort. It unuses swap entries one by one, potentially iterating > over all the page tables for all the processes in the system for each > one. > > This new proposed implementation of try_to_unuse simplifies its > complexity to linear. It iterates over the system's mms once, unusing > all the affected entries as it walks each set of page tables. It also > makes similar changes to shmem_unuse. > > Improvement > > Time took by swapoff on a swap partition containing about 240M of data, > with about 1.1G free memory and about 520M swap available. Swap > partition was on a laptop with a hard disk drive (not SSD). > > Present implementation....about 13.8s > Prototype.................about 5.5s > TODO > > * Handle count of unused pages for frontswap. That should probably wait for a follow-up patch. This patch is big enough as is. > Signed-off-by: Kelley Nielsen <kelleynnn@xxxxxxxxx> Acked-by: Rik van Riel <riel@xxxxxxxxxx> -- All rights reversed -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>