Re: [RFC PATCH 02/02] swapon: add "cluster-discard" support

From: KOSAKI Motohiro
Date: Tue May 21 2013 - 16:17:13 EST


(5/21/13 6:26 AM), Karel Zak wrote:
> On Mon, May 20, 2013 at 09:02:43PM -0400, KOSAKI Motohiro wrote:
>>> - if (fl_discard)
>>> + if (fl_discard) {
>>> flags |= SWAP_FLAG_DISCARD;
>>> + if (fl_discard > 1)
>>> + flags |= SWAP_FLAG_DISCARD_CLUSTER;
>>
>> This is not enough, IMHO. When running this code on old kernel, swapon() return EINVAL.
>> At that time, we should fall back swapon(0x10000).
>
> Hmm.. currently we don't use any fallback for any swap flag (e.g.
> 0x10000) for compatibility with old kernels. Maybe it's better to
> keep it simple and stupid and return an error message than introduce
> any super-smart semantic to hide incompatible fstab configuration.

Hm. If so, I'd propose to revert the following change.

> .B "\-d, \-\-discard"
>-Discard freed swap pages before they are reused, if the swap
>-device supports the discard or trim operation. This may improve
>-performance on some Solid State Devices, but often it does not.
>+Enables swap discards, if the swap device supports that, and performs
>+a batch discard operation for the swap device at swapon time.


And instead, I suggest to make --discard-on-swapon like the following.
(better name idea is welcome)

+--discard-on-swapon
+Enables swap discards, if the swap device supports that, and performs
+a batch discard operation for the swap device at swapon time.

I mean, preserving flags semantics removes the reason we need make a fallback.


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