=== Applying patches on top of PostgreSQL commit ID 7fe312f6092f47724a29e30fb2992bd2bc287687 === /etc/rc.d/jail: WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider migrating to /etc/jail.conf. Fri Mar 21 17:59:23 UTC 2025 On branch cf/5618 nothing to commit, working tree clean === using 'git am' to apply patch ./v4-0001-Introduce-io_max_combine_limit.patch === Applying: Introduce io_max_combine_limit. Using index info to reconstruct a base tree... M doc/src/sgml/config.sgml M src/backend/commands/variable.c M src/backend/storage/aio/aio_init.c M src/backend/storage/buffer/bufmgr.c M src/backend/utils/misc/guc_tables.c M src/backend/utils/misc/postgresql.conf.sample M src/include/storage/bufmgr.h M src/include/utils/guc_hooks.h Falling back to patching base and 3-way merge... Auto-merging src/include/storage/bufmgr.h Auto-merging src/backend/utils/misc/postgresql.conf.sample CONFLICT (content): Merge conflict in src/backend/utils/misc/postgresql.conf.sample Auto-merging src/backend/utils/misc/guc_tables.c CONFLICT (content): Merge conflict in src/backend/utils/misc/guc_tables.c Auto-merging src/backend/storage/buffer/bufmgr.c Auto-merging src/backend/storage/aio/aio_init.c CONFLICT (content): Merge conflict in src/backend/storage/aio/aio_init.c Auto-merging doc/src/sgml/config.sgml CONFLICT (content): Merge conflict in doc/src/sgml/config.sgml error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 Introduce io_max_combine_limit. When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". Unstaged changes after reset: M doc/src/sgml/config.sgml M src/backend/storage/aio/aio_init.c M src/backend/utils/misc/guc_tables.c M src/backend/utils/misc/postgresql.conf.sample === using patch(1) to apply patch ./v4-0001-Introduce-io_max_combine_limit.patch === patch: unrecognized option `--no-backup-if-mismatch' usage: patch [-bCcEeflNnRstuv] [-B backup-prefix] [-D symbol] [-d directory] [-F max-fuzz] [-i patchfile] [-o out-file] [-p strip-count] [-r rej-name] [-V t | nil | never | none] [-x number] [-z backup-ext] [--posix] [origfile [patchfile]] patch Controls the largest I/O size in operations that combine I/O. If set higher than the io_max_combine_limit parameter, the ++<<<<<<< ours + lower value will silently be used instead, so both may need to be raised + to increase the I/O size. + The maximum possible size depends on the operating system and block + size, but is typically 1MB on Unix and 128kB on Windows. ++======= + smaller value will silently be used instead, so both may need to be raised + to increase the I/O size. ++>>>>>>> theirs The default is 128kB. diff --cc src/backend/storage/aio/aio_init.c index 2ede7e80b65,93aba6e03ba..00000000000 --- a/src/backend/storage/aio/aio_init.c +++ b/src/backend/storage/aio/aio_init.c @@@ -19,7 -19,6 +19,10 @@@ #include "storage/aio_internal.h" #include "storage/aio_subsys.h" #include "storage/bufmgr.h" ++<<<<<<< ours +#include "storage/io_worker.h" ++======= ++>>>>>>> theirs #include "storage/ipc.h" #include "storage/proc.h" #include "storage/shmem.h" diff --cc src/backend/utils/misc/guc_tables.c index 97cfd6e5a82,720f28a5180..00000000000 --- a/src/backend/utils/misc/guc_tables.c +++ b/src/backend/utils/misc/guc_tables.c @@@ -3267,7 -3245,7 +3267,11 @@@ struct config_int ConfigureNamesInt[] {"io_max_combine_limit", PGC_POSTMASTER, RESOURCES_IO, ++<<<<<<< ours + gettext_noop("Server-wide limit that clamps io_combine_limit."), ++======= + gettext_noop("System-wide limit applied to io_combine_limit."), ++>>>>>>> theirs NULL, GUC_UNIT_BLOCKS }, diff --cc src/backend/utils/misc/postgresql.conf.sample index 9f31e4071c7,bd9a3507135..00000000000 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@@ -199,12 -199,12 +199,19 @@@ #backend_flush_after = 0 # measured in pages, 0 disables #effective_io_concurrency = 16 # 1-1000; 0 disables prefetching ++<<<<<<< ours +#maintenance_io_concurrency = 16 # 1-1000; 0 disables prefetching +#io_max_combine_limit = 128kB # usually 1-128 blocks (depends on OS) + # (change requires restart) +#io_combine_limit = 128kB # usually 1-128 blocks (depends on OS) ++======= + #maintenance_io_concurrency = 10 # 1-1000; 0 disables prefetching + #io_max_combine_limit = 128kB # usually 1-32 blocks (depends on OS) + # (change requires restart) + #io_combine_limit = 128kB # usually 1-32 blocks (depends on OS) ++>>>>>>> theirs -#io_method = sync # sync (change requires restart) +#io_method = worker # worker, sync (change requires restart) #io_max_concurrency = -1 # Max number of IOs that one process # can execute simultaneously # -1 sets based on shared_buffers