PG Bug reporting form <noreply@postgresql.org> writes:
> The commit f54af9f2679d added a macro HAVE_LIBURING_QUEUE_INIT_MEM that is
> checked to see if slowdown from memory mappings can be avoided when using
> io_uring.
> This HAVE_LIBURING_QUEUE_INIT_MEM is set by Meson build after checking
> liburing.
> However, the autotools build seems to set a different macro,
> HAVE_IO_URING_QUEUE_INIT_MEM, which is never used.
> This means when the server is built with autotools, the slowdown when using
> io_uring can never be avoided.
This is indeed busted, but I'd argue that the autoconf build has the
right macro name and meson and the C code are using the wrong one:
if cc.has_function('io_uring_queue_init_mem',
dependencies: liburing, args: test_c_args)
cdata.set('HAVE_LIBURING_QUEUE_INIT_MEM', 1)
endif
That's clearly not following the "HAVE_function" convention.
regards, tom lane