Re: [PATCH v7 3/3] io_uring: enable per-io hinting capability

Bart Van Assche
2024-10-02T18:29:56Z

On 9/30/24 11:13 AM, Kanchan Joshi wrote:
> diff --git a/include/linux/rw_hint.h b/include/linux/rw_hint.h
> index 309ca72f2dfb..f4373a71ffed 100644
> --- a/include/linux/rw_hint.h
> +++ b/include/linux/rw_hint.h
> @@ -21,4 +21,28 @@ enum rw_hint {
> static_assert(sizeof(enum rw_hint) == 1);
> #endif
>
> +#define WRITE_LIFE_INVALID (RWH_WRITE_LIFE_EXTREME + 1)
> +
> +static inline bool rw_hint_valid(u64 hint)
> +{
> + BUILD_BUG_ON(WRITE_LIFE_NOT_SET != RWH_WRITE_LIFE_NOT_SET);
> + BUILD_BUG_ON(WRITE_LIFE_NONE != RWH_WRITE_LIFE_NONE);
> + BUILD_BUG_ON(WRITE_LIFE_SHORT != RWH_WRITE_LIFE_SHORT);
> + BUILD_BUG_ON(WRITE_LIFE_MEDIUM != RWH_WRITE_LIFE_MEDIUM);
> + BUILD_BUG_ON(WRITE_LIFE_LONG != RWH_WRITE_LIFE_LONG);
> + BUILD_BUG_ON(WRITE_LIFE_EXTREME != RWH_WRITE_LIFE_EXTREME);
> +
> + switch (hint) {
> + case RWH_WRITE_LIFE_NOT_SET:
> + case RWH_WRITE_LIFE_NONE:
> + case RWH_WRITE_LIFE_SHORT:
> + case RWH_WRITE_LIFE_MEDIUM:
> + case RWH_WRITE_LIFE_LONG:
> + case RWH_WRITE_LIFE_EXTREME:
> + return true;
> + default:
> + return false;
> + }
> +}

Moving a function that is not in the hot path from a .c file to a .h
file is wrong. This increases the kernel size, slows down compilation
and makes implementation details visible to callers that should not have
access to these implementation details.

Bart.