Re: [RFC] mm:prototype for the updated swapoff implementation

From: Andrew Morton
Date: Wed Feb 19 2014 - 16:28:07 EST


On Tue, 18 Feb 2014 16:35:22 -0800 Kelley Nielsen <kelleynnn@xxxxxxxxx> 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
>
> swapoff was called on a swap partition containing about 50M of data,
> and calls to the function unuse_pte_range were counted.
>
> Present implementation....about 22.5M calls.
> Prototype.................about 7.0K calls.

Do you have situations in which swapoff is taking an unacceptable
amount of time? If so, please update the changelog to provide full
details on this, with before-and-after timing measurements.

Also, please cc Hugh on swap things.


--
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/