postgres.git / summary / log / commit / refs

commit    640772c6df2bdb3e2b905b03ac199ae46e29cda3
Author:   Masahiko Sawada <msawada@postgresql.org>
Date:     Wed Dec 31 19:18:17 2025 +0000
First released in: 18.2

    Fix macro name for io_uring_queue_init_mem check.
    
    Commit f54af9f2679d added a check for
    io_uring_queue_init_mem(). However, it used the macro name
    HAVE_LIBURING_QUEUE_INIT_MEM in both meson.build and the C code, while
    the Autotools build script defined HAVE_IO_URING_QUEUE_INIT_MEM. As a
    result, the optimization was never enabled in builds configured with
    Autotools, as the C code checked for the wrong macro name.
    
    This commit changes the macro name to HAVE_IO_URING_QUEUE_INIT_MEM in
    meson.build and the C code. This matches the actual function
    name (io_uring_queue_init_mem), following the standard HAVE_<FUNCTION>
    convention.
    
    Backpatch to 18, where the macro was introduced.
    
    Bug: #19368
    Reported-by: Evan Si <evsi@amazon.com>
    Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
    Discussion: https://postgr.es/m/19368-016d79a7f3a1c599@postgresql.org
    Backpatch-through: 18


meson.build | 2 +- src/backend/storage/aio/method_io_uring.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index ca753859c3c..f4e5708372e 100644 --- a/meson.build +++ b/meson.build @@ -1001,7 +1001,7 @@ if liburing.found() if cc.has_function('io_uring_queue_init_mem', dependencies: liburing, args: test_c_args) - cdata.set('HAVE_LIBURING_QUEUE_INIT_MEM', 1) + cdata.set('HAVE_IO_URING_QUEUE_INIT_MEM', 1) endif endif diff --git a/src/backend/storage/aio/method_io_uring.c b/src/backend/storage/aio/method_io_uring.c index bb06da63a8e..a5681e22a99 100644 --- a/src/backend/storage/aio/method_io_uring.c +++ b/src/backend/storage/aio/method_io_uring.c @@ -156,7 +156,7 @@ pgaio_uring_check_capabilities(void) * also has a secondary benefit: We can determine precisely how much * memory we need for each io_uring instance. */ -#if defined(HAVE_LIBURING_QUEUE_INIT_MEM) && defined(IORING_SETUP_NO_MMAP) +#if defined(HAVE_IO_URING_QUEUE_INIT_MEM) && defined(IORING_SETUP_NO_MMAP) { struct io_uring test_ring; size_t ring_size; @@ -341,7 +341,7 @@ pgaio_uring_shmem_init(bool first_time) * with its data in shared memory. Otherwise fall back io_uring * creating a memory mapping for each ring. */ -#if defined(HAVE_LIBURING_QUEUE_INIT_MEM) && defined(IORING_SETUP_NO_MMAP) +#if defined(HAVE_IO_URING_QUEUE_INIT_MEM) && defined(IORING_SETUP_NO_MMAP) if (pgaio_uring_caps.mem_init_size > 0) { struct io_uring_params p = {0}; [parent: 6377b17257c6]