Re: [PATCH] check kernel version for io_method - Mailing list pgsql-hackers

From Steven Niu
Subject Re: [PATCH] check kernel version for io_method
Date
Msg-id MN2PR15MB302195F72D8A5F65328B91CCA78FA@MN2PR15MB3021.namprd15.prod.outlook.com
Whole thread Raw
In response to Re: [PATCH] check kernel version for io_method  (Andreas Karlsson <andreas@proxel.se>)
Responses Re: [PATCH] check kernel version for io_method
List pgsql-hackers
From: Andreas Karlsson <andreas@proxel.se>
Sent: Wednesday, January 14, 2026 11:09
To: Steven Niu <niushiji@gmail.com>; Pierre <pierre.forstmann@gmail.com>; pgsql-hackers@lists.postgresql.org
<pgsql-hackers@lists.postgresql.org>
Subject: Re: [PATCH] check kernel version for io_method


On 1/14/26 3:31 AM, Steven Niu wrote:
> BTW, the error message in the following code block is wrong as it locates in branch that IO_URING is not enabled.
>
> #else
> +     if (*newval == IOMETHOD_WORKER || *newval == IOMETHOD_SYNC)
> +     {
> +             /*
> +              * OK
> +              */
> +     }
> +     else
> +     {
> +             GUC_check_errdetail("io_uring requires Linux kernel 5.6 or later.");
> +             return false;
> +     }

That code is unreachable so it should just be deleted. Look at the enum.

/* Enum for io_method GUC. */
typedef enum IoMethod
{
        IOMETHOD_SYNC = 0,
        IOMETHOD_WORKER,
#ifdef IOMETHOD_IO_URING_ENABLED
        IOMETHOD_IO_URING,
#endif
}                       IoMethod;

Andreas



________________________________________

Hi, Andreas,

I agree that you are correct for now. But in future, the IoMethod may have new member. Then we have to process it.

How about change to like this:
 + #else
 +     if (*newval == IOMETHOD_IO_URING)
 +     {
 +             GUC_check_errdetail("io_uring not enabled.");
 +             return false;
 +     }

Thanks,
Steven



pgsql-hackers by date:

Previous
From: Andreas Karlsson
Date:
Subject: Re: Remove redundant assignment in CreateWorkExprContext
Next
From: Andreas Karlsson
Date:
Subject: Re: [PATCH] check kernel version for io_method