v11j-0002-fixup.patch
text/x-patch
Filename: v11j-0002-fixup.patch
Type: text/x-patch
Part: 1
Message:
Re: LogwrtResult contended spinlock
Patch
Format: format-patch
Series: patch 0002
Subject: fixup
| File | + | − |
|---|---|---|
| src/backend/access/transam/xlog.c | 4 | 0 |
From 42001626af46b93a6eff69c0076dab65deaea912 Mon Sep 17 00:00:00 2001
From: Jeff Davis <jeff@j-davis.com>
Date: Fri, 16 Feb 2024 12:15:40 -0800
Subject: [PATCH v11j 2/3] fixup
---
src/backend/access/transam/xlog.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 46394c5d39..0a667a9dea 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -962,6 +962,8 @@ XLogInsertRecord(XLogRecData *rdata,
if (XLogCtl->LogwrtRqst.Write < EndPos)
XLogCtl->LogwrtRqst.Write = EndPos;
SpinLockRelease(&XLogCtl->info_lck);
+ LogwrtResult.Flush = pg_atomic_read_u64(&XLogCtl->LogwrtResult.Flush);
+ LogwrtResult.Write = pg_atomic_read_u64(&XLogCtl->LogwrtResult.Write);
}
/*
@@ -6371,7 +6373,9 @@ GetFlushRecPtr(TimeLineID *insertTLI)
{
Assert(XLogCtl->SharedRecoveryState == RECOVERY_STATE_DONE);
+ pg_read_barrier();
LogwrtResult.Flush = pg_atomic_read_u64(&XLogCtl->LogwrtResult.Flush);
+ LogwrtResult.Write = pg_atomic_read_u64(&XLogCtl->LogwrtResult.Write);
/*
* If we're writing and flushing WAL, the time line can't be changing, so
--
2.34.1