postgresql/src/include/storage
Andres Freund 41d3d64e87 bufmgr: Don't copy pages while writing out
After the series of preceding commits introducing and using
BufferBeginSetHintBits()/BufferSetHintBits16(), hint bits are not set anymore
while IO is going on. Therefore we do not need to copy pages while they are
being written out anymore.

For the same reason XLogSaveBufferForHint() now does not need to operate on a
copy of the page anymore, but can instead use the normal XLogRegisterBuffer()
mechanism. For that the assertions and comments to XLogRegisterBuffer() had to
be updated to allow share-exclusive locked buffers to be registered.

Reviewed-by: Melanie Plageman <melanieplageman@gmail.com>
Discussion: https://postgr.es/m/5ubipyssiju5twkb7zgqwdr7q2vhpkpmuelxfpanetlk6ofnop@hvxb4g2amb2d
2026-03-27 15:56:29 -04:00
..
.gitignore When trace_lwlocks is used, identify individual lwlocks by name. 2015-09-11 14:01:39 -04:00
aio.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
aio_internal.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
aio_subsys.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
aio_types.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
barrier.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
block.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
buf.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
buf_internals.h bufmgr: Remove the, now obsolete, BM_JUST_DIRTIED 2026-03-11 14:58:29 -04:00
buffile.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
bufmgr.h Require share-exclusive lock to set hint bits and to flush 2026-03-10 19:32:13 -04:00
bufpage.h bufmgr: Don't copy pages while writing out 2026-03-27 15:56:29 -04:00
bulk_write.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
checksum.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
checksum_impl.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
condition_variable.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
copydir.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
dsm.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
dsm_impl.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
dsm_registry.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
fd.h Add file_extend_method=posix_fallocate,write_zeros. 2026-02-06 17:38:49 +13:00
fileset.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
freespace.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
fsm_internals.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
indexfsm.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
io_worker.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
ipc.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
itemid.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
itemptr.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
large_object.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
latch.h Don't include wait_event.h in pgstat.h 2026-03-06 16:24:58 +01:00
lmgr.h Don't include storage/lock.h in so many headers 2026-03-24 17:11:12 +01:00
lock.h Don't include storage/lock.h in so many headers 2026-03-24 17:11:12 +01:00
lockdefs.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
locktag.h Move declarations related to locktags from lock.h to new locktag.h 2026-03-21 14:34:47 +09:00
lwlock.h Use ShmemInitStruct to allocate lwlock.c's shared memory 2026-03-26 23:51:41 +02:00
lwlocklist.h Move ShmemIndexLock into ShmemAllocator 2026-03-26 23:51:41 +02:00
md.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
meson.build Update copyright for 2026 2026-01-01 13:24:10 -05:00
off.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
pg_sema.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
pg_shmem.h Move shmem allocator's fields from PGShmemHeader to its own struct 2026-01-30 18:22:56 +02:00
pmsignal.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
predicate.h Don't include storage/lock.h in so many headers 2026-03-24 17:11:12 +01:00
predicate_internals.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
proc.h Avoid including clog.h in proc.h 2026-03-24 17:31:16 +01:00
procarray.h Don't include storage/lock.h in so many headers 2026-03-24 17:11:12 +01:00
proclist.h Rename AssertVariableIsOfType to StaticAssertVariableIsOfType 2026-02-03 08:45:24 +01:00
proclist_types.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
procnumber.h bufmgr: Change BufferDesc.state to be a 64-bit atomic 2026-01-15 14:20:41 -05:00
procsignal.h Separate RecoveryConflictReasons from procsignals 2026-02-10 16:23:08 +02:00
read_stream.h Add read_stream_{pause,resume}() 2026-03-03 16:03:09 -05:00
reinit.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
relfilelocator.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
s_lock.h Remove SpinLockFree() and S_LOCK_FREE(). 2026-02-19 16:19:41 -06:00
sharedfileset.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
shm_mq.h Don't include proc.h in shm_mq.h 2026-02-27 10:53:47 +01:00
shm_toc.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
shmem.h Use a separate spinlock to protect LWLockTranches 2026-03-26 23:50:59 +02:00
sinval.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
sinvaladt.h Don't include storage/lock.h in so many headers 2026-03-24 17:11:12 +01:00
smgr.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
spin.h Convert SpinLock* macros to static inline functions. 2026-02-23 15:32:01 -06:00
standby.h Don't include storage/lock.h in so many headers 2026-03-24 17:11:12 +01:00
standbydefs.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
sync.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
waiteventset.h Update copyright for 2026 2026-01-01 13:24:10 -05:00