Re: [PATCH] swap: send callback when swap slot is freed

Peter Zijlstra
2009-08-12T18:33:37Z

On Wed, 2009-08-12 at 20:07 +0530, Nitin Gupta wrote:
> Currently, we have "swap discard" mechanism which sends a discard bio request
> when we find a free cluster during scan_swap_map(). This callback can come a
> long time after swap slots are actually freed.
>
> This delay in callback is a great problem when (compressed) RAM [1] is used
> as a swap device. So, this change adds a callback which is called as
> soon as a swap slot becomes free. For above mentioned case of swapping
> over compressed RAM device, this is very useful since we can immediately
> free memory allocated for this swap page.
>
> This callback does not replace swap discard support. It is called with
> swap_lock held, so it is meant to trigger action that finishes quickly.
> However, swap discard is an I/O request and can be used for taking longer
> actions.

I'd suggest using a notifier list for this. The interface just begs to
go belly up once there's multiple consumers.

Also, EXPORT_SYMBOL_GPL please ;-)