Re: [PATCH -next v7 2/4] mm/zswap: skip invalid or unchanged parameter

From: Liu Shixin
Date: Sun Mar 26 2023 - 21:22:45 EST




On 2023/3/27 7:25, Christoph Hellwig wrote:
> On Sun, Mar 26, 2023 at 01:53:27PM +0900, Sergey Senozhatsky wrote:
>>>> + if (kstrtobool(val, &res))
>>>> + return -EINVAL;
>>>> +
>>>> + /* no change required */
>>>> + if (res == *(bool *)kp->arg)
>>>> + return 0;
>>> Bool kernel param can be any of these letters 'YyTt1NnFf0'. Doing things
>>> to kp->arg outside of kernel/params.c is not going to be easy, let's not
>>> even try.
>> Please disregard my previous email. kp->arg is always true or false
>> at this point. I'd still prefer to not do kp->arg in zswap.
> The whole parameter handling in zswap is a mess and I don't really
> have a good idea how to solve it all.
>
> But for this "paramter not changed" case I think we can helper a lot
> by adding a core moduleparam.h helper to encapsule it. I.e.:
>
> static inline bool param_bool_unchanged(bool val,
> const struct kernel_param *kp)
>
> return val == *(bool *)kp->arg);
> }
>
> and at least keep it out of zswap.
Thanks for your advice. I will try this way.
>
> .
>