agora inbox for pgsql-hackers@postgresql.org
help / color / mirror / Atom feed[PATCH v5 2/2] Add support for AVX2 in simd.h.
210+ messages / 2 participants
[nested] [flat]
* [PATCH v5 2/2] Add support for AVX2 in simd.h.
@ 2024-03-18 16:02 Nathan Bossart <nathan@postgresql.org>
0 siblings, 0 replies; 210+ messages in thread
From: Nathan Bossart @ 2024-03-18 16:02 UTC (permalink / raw)
Discussion: https://postgr.es/m/20231129171526.GA857928%40nathanxps13
---
src/include/port/simd.h | 61 ++++++++++++++++++++++++++++++++---------
1 file changed, 48 insertions(+), 13 deletions(-)
diff --git a/src/include/port/simd.h b/src/include/port/simd.h
index 597496f2fb..f06b21876b 100644
--- a/src/include/port/simd.h
+++ b/src/include/port/simd.h
@@ -18,7 +18,18 @@
#ifndef SIMD_H
#define SIMD_H
-#if (defined(__x86_64__) || defined(_M_AMD64))
+#if defined(__AVX2__)
+
+/*
+ * XXX: Need to add a big comment here.
+ */
+#include <immintrin.h>
+#define USE_AVX2
+typedef __m256i Vector8;
+typedef __m256i Vector32;
+
+#elif (defined(__x86_64__) || defined(_M_AMD64))
+
/*
* SSE2 instructions are part of the spec for the 64-bit x86 ISA. We assume
* that compilers targeting this architecture understand SSE2 intrinsics.
@@ -107,7 +118,9 @@ static inline Vector32 vector32_eq(const Vector32 v1, const Vector32 v2);
static inline void
vector8_load(Vector8 *v, const uint8 *s)
{
-#if defined(USE_SSE2)
+#if defined(USE_AVX2)
+ *v = _mm256_loadu_si256((const __m256i *) s);
+#elif defined(USE_SSE2)
*v = _mm_loadu_si128((const __m128i *) s);
#elif defined(USE_NEON)
*v = vld1q_u8(s);
@@ -120,7 +133,9 @@ vector8_load(Vector8 *v, const uint8 *s)
static inline void
vector32_load(Vector32 *v, const uint32 *s)
{
-#ifdef USE_SSE2
+#if defined(USE_AVX2)
+ *v = _mm256_loadu_si256((const __m256i *) s);
+#elif defined(USE_SSE2)
*v = _mm_loadu_si128((const __m128i *) s);
#elif defined(USE_NEON)
*v = vld1q_u32(s);
@@ -134,7 +149,9 @@ vector32_load(Vector32 *v, const uint32 *s)
static inline Vector8
vector8_broadcast(const uint8 c)
{
-#if defined(USE_SSE2)
+#if defined(USE_AVX2)
+ return _mm256_set1_epi8(c);
+#elif defined(USE_SSE2)
return _mm_set1_epi8(c);
#elif defined(USE_NEON)
return vdupq_n_u8(c);
@@ -147,7 +164,9 @@ vector8_broadcast(const uint8 c)
static inline Vector32
vector32_broadcast(const uint32 c)
{
-#ifdef USE_SSE2
+#if defined(USE_AVX2)
+ return _mm256_set1_epi32(c);
+#elif defined(USE_SSE2)
return _mm_set1_epi32(c);
#elif defined(USE_NEON)
return vdupq_n_u32(c);
@@ -270,7 +289,9 @@ vector8_has_le(const Vector8 v, const uint8 c)
static inline bool
vector8_is_highbit_set(const Vector8 v)
{
-#ifdef USE_SSE2
+#if defined(USE_AVX2)
+ return _mm256_movemask_epi8(v) != 0;
+#elif defined(USE_SSE2)
return _mm_movemask_epi8(v) != 0;
#elif defined(USE_NEON)
return vmaxvq_u8(v) > 0x7F;
@@ -308,7 +329,9 @@ vector32_is_highbit_set(const Vector32 v)
static inline uint32
vector8_highbit_mask(const Vector8 v)
{
-#ifdef USE_SSE2
+#if defined(USE_AVX2)
+ return (uint32) _mm256_movemask_epi8(v);
+#elif defined(USE_SSE2)
return (uint32) _mm_movemask_epi8(v);
#elif defined(USE_NEON)
/*
@@ -337,7 +360,9 @@ vector8_highbit_mask(const Vector8 v)
static inline Vector8
vector8_or(const Vector8 v1, const Vector8 v2)
{
-#ifdef USE_SSE2
+#if defined(USE_AVX2)
+ return _mm256_or_si256(v1, v2);
+#elif defined(USE_SSE2)
return _mm_or_si128(v1, v2);
#elif defined(USE_NEON)
return vorrq_u8(v1, v2);
@@ -350,7 +375,9 @@ vector8_or(const Vector8 v1, const Vector8 v2)
static inline Vector32
vector32_or(const Vector32 v1, const Vector32 v2)
{
-#ifdef USE_SSE2
+#if defined(USE_AVX2)
+ return _mm256_or_si256(v1, v2);
+#elif defined(USE_SSE2)
return _mm_or_si128(v1, v2);
#elif defined(USE_NEON)
return vorrq_u32(v1, v2);
@@ -368,7 +395,9 @@ vector32_or(const Vector32 v1, const Vector32 v2)
static inline Vector8
vector8_ssub(const Vector8 v1, const Vector8 v2)
{
-#ifdef USE_SSE2
+#if defined(USE_AVX2)
+ return _mm256_subs_epu8(v1, v2);
+#elif defined(USE_SSE2)
return _mm_subs_epu8(v1, v2);
#elif defined(USE_NEON)
return vqsubq_u8(v1, v2);
@@ -384,7 +413,9 @@ vector8_ssub(const Vector8 v1, const Vector8 v2)
static inline Vector8
vector8_eq(const Vector8 v1, const Vector8 v2)
{
-#ifdef USE_SSE2
+#if defined(USE_AVX2)
+ return _mm256_cmpeq_epi8(v1, v2);
+#elif defined(USE_SSE2)
return _mm_cmpeq_epi8(v1, v2);
#elif defined(USE_NEON)
return vceqq_u8(v1, v2);
@@ -396,7 +427,9 @@ vector8_eq(const Vector8 v1, const Vector8 v2)
static inline Vector32
vector32_eq(const Vector32 v1, const Vector32 v2)
{
-#ifdef USE_SSE2
+#if defined(USE_AVX2)
+ return _mm256_cmpeq_epi32(v1, v2);
+#elif defined(USE_SSE2)
return _mm_cmpeq_epi32(v1, v2);
#elif defined(USE_NEON)
return vceqq_u32(v1, v2);
@@ -411,7 +444,9 @@ vector32_eq(const Vector32 v1, const Vector32 v2)
static inline Vector8
vector8_min(const Vector8 v1, const Vector8 v2)
{
-#ifdef USE_SSE2
+#if defined(USE_AVX2)
+ return _mm256_min_epu8(v1, v2);
+#elif defined(USE_SSE2)
return _mm_min_epu8(v1, v2);
#elif defined(USE_NEON)
return vminq_u8(v1, v2);
--
2.25.1
--EVF5PPMfhYS0aIcm
Content-Type: image/jpeg
Content-Disposition: attachment; filename="v5_x86.jpg"
Content-Transfer-Encoding: base64
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
Bb+gfEmUIbIZDbWKDRgPZZ6/Lw8aK3FrCQnOd3lt0IlpMS0CfMbP2QMOK91qG6dt07wMVAYI
kR4iAh1t08Nq25JuOH5VvcpW9ylb3KVvcpW9ylb3KVvcpW3JWnTyW9ylb3KVvcpW3Jb3KVvc
pW9ylb3KVvcpW9yld20+5vGC3uUre5So8S+TRLD9lHhmdzuC/o9HnM1lNhsDrv0m9aK6/CWC
3uUpjRPuoONy3uUre5St7lK3uUrRXX3O4eigwhObncFKTuUre5St7lK3uUre5St7lK3uUre5
St7lKx6Lbkt7lKIE5uuwTGydPbqlb3KVvcpW9ylb3KVvcpTMceHl24rFYrFNLG2puGS7tjWM
e2GHPtjadnRAQAxpDA51u+/h0QEAMaQwOdbvv4dFAjMY0Ne5odM4TMlMmQT2BzZtdKrG6aZA
g2bTgXEuE5BCAwMbGFq2TeBL/KEBgY2MLVsm8CX+VJjYbXNcWxHG8CXkg5jGbRPYZOl/E/ZL
XCbSJELXc+ILNgB5wC9458XVsC2cAg8xIkQtFlts4Dsb6fA/SPZ/f2ho0G+NE4bForJzJbM+
t/ZMqPGO+/8Av+VpcOENeI6TVN18V1R7NCd+r5p7/wArZp0Q4vd7MJ3B6dExhwcPblaOSuDi
rLWOmi1zXE+S1YbyV9jECm5jtX8wkuKoVKwCpCnaTS47e2kKkKkKkdjo0CwbbQ1weZYbeqBg
FjiWBrrd1/HqgYBY4lga63dfx6qFAhd24MLXFznSmQZ8F7xrZ7QLwnua0Tc6eGFyZHg2bTQW
kOumEI7Cx0bWtg3Az/whHYWOja1sG4Gf+EGju3B7i+KLRbPywwQD2MYRsYZj4TfT27IpUvZO
jNFImXefsmI/9hxTtNj1vpWiH9uvYNBgHGsoQ2Zo6TI2z26K7g76KJ53KCP0z9lvk9NnW7WP
tGVTrgg0wQ87TJasED9leJBYfCZ6/LxjfT2rLTjtUvZEKFrRn4DgmB5m98OZQ7G6NBn3sThw
Vt+s9psjzX9TppJngzs0J36vmEXHYJqLHdU92PswncHqBorKnmaAGz2iNa7yVD1Q9UPXu4Dn
L7q5d5EhljGDA/GZ6/LxjfT2S2chvFMlcwOkPZni80hHS9J+1dgOCgn9BQ7Hu2Q2p0OR7q1b
8pdujO4OUU8RJQhxE/ZHk8J+lv2arfae7yuQLmgl196wWCw7Sh8Vnr8vDuiEEho2LSYgiTjO
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
xNpxChR4bS6Wo9o/KUYtnXIkSi04ESXdRzHitDJQSwfT9sVChkAFrb5cUWnA3JkGM62xn2fd
sNomV3ohGiXxrIHp6dhgxHB2iWpyDCXYzlcobntdbxk52H7cV3LwQ0tvibGzwQ0fSPdR4I92
8DHgW/RMjxQ7vZA2S65plwTA5jiDMuI3Rx6o6Xo7gcXPBNzximaTEhvaBS128PMJgcxxBmXE
bo49UdL0dwOLngm54xTY0SG9o3Wudj5kJgcxxBmXEbo49VA1wWiMHWz6zRjmBZmbp73mR/4Q
WuAINxU4j3WRdDhk0jteDMaMHakLZ/jy7XgzGjB2pC2f48u1wdMaMHTZC2evp5f+3v8A/8QA
LBAAAQIFAwIGAwEBAQAAAAAAAQARITFh0fFBUfBxoRAgQIGRsTDB4VBgcP/aAAgBAQABPyH/
AJQHXEOGcJ5TBFJcu47lAW8TcQAF4lR7AekAIPcjeqCVBB0QAQW5fWqCLCuDXRRA0Q44Kz1y
z1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1y
z1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1yz1y
z1yz1yz1yz1yz1yBRjGBLX9MNxMDFix+VtejmBogliiQz50I2HMBQIoVdbdhzAUTwYgSybA5
gKDw7X9f6/Jq9Z2v6/1+TV6ztf1/r8mr09d9A7YoFAbnTgN2RwSmks6sjgFJQWdW8O1/X+vy
avTCmgGKCxj0U+ijEuC6Bc40DQHRbxdlftmR6iXRDezsifFirP0jgW28wWU2WU2WU2WU2WU2
WU2WU2WU2WU2WU2WU2WU2QJLk6LKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbL
KbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbLKbL
KbLKbIoKDa7VT0wywTEDghNGjWHZUuSItsjBlNJ9xkYIppLureHa/r8hM3QCcZqt/lRerEHw
es7X9fjJiKa3gCFv8nlrjtaba8qtJVFqesdr+vxm3TRZ1BCw/wDIM2i5KYSvrEft/pdRknnz
6YkAOSwCOiIiSBB57MZosYka27DIiqKB1Vuw4iKp9MwoqgHERUeHa/r8ZsoiGBBg67X/ABtf
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
c8ILeJoJnqmnPMzCIdtIxXXniI9w+qRxhCDOmkBQPD6D2DqOCc7DBk8mbQh4FC4MxWwQepII
Hh9B7B1HBOdhgyeTNoQ8CgJaXMBkxIz3QPD6D2DqOCM8hG1Jz+81Pjl4holIdH/xW8W/wAC3
YImEIMRHDF1Op+vAgGYB0R+XUUgu390R4CAZgHRH5dRSC7f3RHgIBmAdEcRUbILrkR/56//a
AAwDAQACAAMAAAAQ4440wwwwwwwwwwwwwwwwwwwwwwwwwww088888888888cco8888888888
88888888888888888U8888888888848o888888888888888888888888888U8888888888o4
cYMMMMMflMMMMMMMMMMMMMMMMMMMMX8888888888888o88888sU8888888888888888888xe
8888888888ooAkwwwwwwRwwwwwwwwwwwwwwww00shV8888888888888o88888VV888888888
8888887a67Wd8888888888440o88888VV88888888888840wJM5i89888888888888sYMMMM
MFFMMMMMMMMMMMM2Jeve1PM18888888888888o88888VV8888888888/2/s/8sf88U888888
88888o0YMMMMZEFMMMMMMMMIhePM8MMMMMMUsNKA008888888o8888l9V88888/10q+p88v8
8816+d7ygAU088888w0kwww1ywJww4wd1ZyQ1Zwwww08pwwc88+08w080888so888zc8R87f
sCc6389+881R0M9td1vMNMMsMc88888o88jf81X/AH3YPPBXPKeApzfPPPPPFPPPPPPPPPPP
OJGDGmzC5vnjGxjDFkPbhaWXTDDDDDFPPPPPPPPPPPPPKPP7OPvEXvPJzn6/PPPPPPPPPPPP
FPPPPPPPPPPPJNJJS4MM8HVPawgQU8MMMMMMMMMMMMFPPPPPPPPPPPHPKLvLPflzPPPPPPPP
PPPPPPPPPPPPFPPPPPPPPPPPPMK3fPHPPPPPPPPPPPPPPPPPPPPPPPFPPPPPPPPPPPPPHBCA
CBADACBACACBAAACBACCCBABFPPPPPPPPPPPPPILPBJMKMHLLILECFGICAHNNPGLFDHPPPPP
PPPPPPPPPPPPLPHPPPPPPPPPPPPPPPLPPPPHPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
PPPPPPPPPPPPPPPPPP/EACsRAQACAAMGBgMBAQEAAAAAAAEAESExQRBAUWGRsTBxgaHB0SDh
8HBQ8f/aAAgBAwEBPxD/AAdckwS91ALN0BV8T2xiu3L5d0w9ZhqnBe+6KKarPY7moMqs94ya
jMg5u6dz3nt/ncFrFjoZdH3CJK1hxEGgTOee6ZHlPb/PjBApYFrMSjzfUwnmIYvkEKga4dtm
X5/G6aXInc9/FfVTKk0FgVxsvLYAVW4V3lhKrqIUXZacW6aPAO07nv4agWxKUcXKYlW1zjoG
r3qBRRsNVrAoo3YLaiuXd+ExalecxuI9pWxL9B9vA0gn9QmuG4CAYXFbec7/APGnPq4oFswY
RA0sR9R5fuBS0SYg4DtCWp/BQkGBWav0Ys4IeSuqXKeyF+JexAKuqtzXjLL2K30nIfxygAh6
E7+OCtEqiZZ7O+2sg67Ops6TyJnzeEwJ5wRyDA+YBUZz5d5jTgB+PIjE6tR/AM1z5/hki5zE
yRXj9R7fvaihxdiBbCg4xXlcC6NcNJ85w6kLDh9SobcxbM47VsVtopDLNx6RAcZzfgEBzd/z
hL1LiWyjmJTgmHIdI7tgjJnOinN8YJfEKHkXEVuxV1deUOtovYjaBq1MEyYJn+neYA4F7bLH
B012gc5ahAVGrwZek5j+eUryHqpQ1QwA4H7d3IBhHlncw2OAzOUq1rrDv+COFWXc7Dcsd4ux
triaywa+GEmp5kCzT6y8s0a1ziLG3SYeLK5/aKDIN3tI0FnvvhjhPIjL72Y8Z3h0JhWuuxC5
jhGMY4FEq9dOM/8AVPqVaDjm6VUWIB1zeL2PTfaNcZifbq8WOvNIKRwLv6gAUbCceBgcb9SP
5sJl0aG8npFG0L8pfg6S/B0jZ98vmDQZzHlsVJyd5hujiqxdcucvz6V+5Rgda/ULVTnfv/ww
HWMjnx9IqtuzKLeL/pf/xAArEQEAAQEFBwQDAQEAAAAAAAABEQAhMUFRYRBAcZGhsdEwgcHw
IOHxcFD/2gAIAQIBAT8Q/wAHCtWwoZwS0NkhuTr87qih3TLMPwqNl/A3S1wD7FKZZh23S7zO
4tfW0NzvCJh6UA4FLy0N0tLwdP3XTuxuAKwUBl8S+KSAnClZaKW1dem6WuGcgrqzs9eBKtYC
rCXg018VadQ1YJmtIGcLe+y86fO6Wh5+Kus7HqnkoqTMUKA5V+rsAGY5z2qIiYmhAhjs0A3S
3rK6vqABUFIMuwvqygQF1GUYHaaWWXYwnClll3aYyVENO9tfa09I2vCeFKGWd6l2DB0JzfQx
Qr71oa43CEAlB0706+AHSvv6P4z0JigVgpiTQhIUQ5Zr+qZTiNWGzQ2rDCfgcXrbblWYOD8V
JculQW8W7Ko625VreZTVz7nrukgKyAFq8C50m/Z0Hy2mqYW7OTh5zV5XrtDOra6U32G197qU
mlyce1WSzV/ESyHOiV4UZJKj+fhFRSzYr+sU5AvBn124xubwdXap3FO+xFBTG5DPGPimgolU
kfi6nahhc7OtTDXYooBjcLNpFKPZe1W8SwkHGXKilQ63u9Bs4AYKwU4o9ypbWXieKtX/AN47
BSyW21VlauuPGtLyKu8Pb1nW6IZUsQa0BOA2HgOGrStY96gJLAmrcvWuGlXPv2q0ubG2IzNz
w2kywoFQJ0/daTl+6zegqK0ykl1WOxu98Ph7sUTsYPdkldXYDW4X1bGGFHS0BNN/YbFFAiZb
+LtXKLJh0KUiJxfC0y/vxV3HxfFY5OEO5U2wc58VOXn8KgW0rgLjd7CcN7TK9Ns4s2vwbJob
ozzVaRdhw2EDuKuGAbcbsMajNyPmsaHCLPNPVlwMJbuRvoupKYggPaM+LRnh0o0Wt3mlVl2T
y3hMhXvTZH6cK/vPmh7EHF80CQc1X91X91RCTVtVZX33yOMPipSvLNXg67BI6ParMSywguwq
C7oKzegqdlQj/hllneNMvfHSjQQH+nf/xAAsEAEAAgEDAQcEAwEBAQAAAAABESEAMUFRYRBx
gZGhwfAgMECxUNHx4WBw/9oACAEBAAE/EP8AymvVJMJO485eMoJmURVm5dcm8U+TFWKGRAia
Xg9gTb5ICud2vHw0zXFhIWu93isJyRfMOJeGSbD/AC4gQIECBAgQIECBAgQIECBAgQIECBAg
QIECBAgQIECBAgQIECBAgQIECBAgQIECBCwBEGTC7LYfxmiLZuJIYCI9Rky6uUIaEvpAEo0G
XDUAs9RYetArJmCiil1Bu5QUViy0xWab64NAo47PheH8v6l+Y/C8P5f1L8x+F4fy/qX46oHm
jotsGjZTd4tQEYm0LUDDfTG7xBUfeMeON/KGR94x49nwvD+X9S/GQxlQTFJeN1aqSBgDQnXx
xixMUkAToItoGSc76TpdNvMTGT9zEjc47nO8xvgmbRVXlLDTOirFINvuypUqVKlSpUqVKjRp
Wci/ipUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlW3uQup4UfjJ3wSSIRGk
TbDwiQAR1JA5Ytio5lklrEqx1xwQS1FzAT4474Jaj5gJ8ez4Xh9wwBMX10cvmB6Gv9fxTBUv
yBmBW5TfT8z4Xh9vocLl9f1HIL0PmP8AEtUF7ZvHWww0InfQoLHn+Z8Lw+3Jesxj3o809s6X
A/f8QOmeRPQA3VrHFdw0qTpZLEwAz5h4n8YjMCVWAMgwbRWBsgGAwkh1xDSVNHVAAkpJePSF
FEDqhQ1SSy8T2sOyRXXJqFnPZ8Lw+33gQ9cmVibxv7uaz4t/hjiggAbEHd16Ec0T8ApwSTjw
9UZUao8CY2VOjhGBy7Bh6jPn+NkqvKAJbKoiZwtAq0wgToFcJgCut0jesCgrRduTMzlZHEBu
/asMwSFc2Eha71WKwnBE8049BlQQlFX9sQIECBAgQIECEaGxhjo8DDoAEQUYQzhTJFukEen8
KQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgmSgYKkFmFiztw6cRr8DCPBu1rARJm
aEEqnZ7CAEhJAS04A2/M+F4fbvyez+h+/wCCCFLM53RwerBiUbG3EanPo07HfpYFagjSVEPQ
Mn7D0iL0cuOwPL+s5UkSPMfd2Gfzvpe35nwvD7fff3nZ6k/f8CBNN36OV0DnF3b/AISp7vVJ
2zo+fzMl3vg1JAfOMlfLkP0C5hjZgwBUA8MinWy8PamUTFF3E7OkS8Sn3/M+F4fb7qI+v/Oz
079n574DQQzOhLjViNYAJmeMgyVDifPe2DbV4wCadKAzwPVjORjQHjJ6TlRRPwHflDT6qjBk
NwWAAAKDs7/PVH4zWokGVjYOcYq1ySfVECQLe7haGTjggmgogSN3WFoZOOCCaCiBI3dY2ZE2
i6MQMEKbrs+F4fbouP7vZqun9n5Z72kNAWuayuQiSXEylp37DLAlTAGVCOGkE0cgVdpDfHag
OAsC8WOh1yF6Nhe4ur/zs6Pj8zKB24LoewMo+KTuBhaYEOSbEDQCB5jwnb4Gnk3v+M2C6YKF
BUJdLQ64nJ/rxRmOEayLVOHFhlaQswWSsi1ThxYZWkLMFkrEWMBwDVsElMFkrFZC8F5DGPyd
VgTQ2H7dSpUqVKlSpUqT6KlPE6p9eyo/iQMpqaK14fl1KlSpUqVKlSpUqVKlSpUqVKlSpUqV
KhlfkQ7ErE6L2npjdMYzw0hGLV2VIoqSC6hFieraemEVFImXVA+HcGHA6w4NtJEMQeL21Kgk
larOylZMPHEoyFDbD26lSZs6etAQlEust9tSo5+dJrn1jV5fmfC8Pt3PHtDs1fzZ+VE5URN8
nk8xhfQKmQsDQgYnXXOmS+mRJ8Kd2PUmQDaSlMyOrDfD3z9DxxxYQPXHGXK8qcO88vX6vUvz
H4Xh9vuBJ6/87Nb1/s/J3JwOq2A3XjKteBcUk6rAOx365wIDxP8AcYjNY+3sep5sAACb6oBf
OfpWHMjogRp1MgBt5ugC/V6l+Y/C8Pt95Pe9mp6/b8eMiRdbpaj+sREiDA1aRPcIaZc4xy1b
jmhvq4AHA8ANg7ON3XgMUG0dAwPhr931L8dXU/MLCDqpGLCrHeUSSDVbBweOsctYBYEaaXhe
GBDAqAkwI6LxSd6gHDYwogRg658K98+Fe+fCvfPhXvnwr3z4V758K98+Fe+fCvfPgXvl3kIM
fXPhXvjCvhjY0z4V758K98+Fe+fCvfPhXvnwr3z4V758K98+Fe+fCvfPhXvnwr3z4V758K98
+Fe+fCvfPhXvnwr3z4V74G6mIV6BNrpGQoMnIqE7xMu+fCvfC5QANQSdPZYMr4HDgDTG6/IM
co18c+Fe+fCvfIBN1i0cn1wA95kIFL58+Fe+fCvfPhXvnwr3z4V758K98+Fe+fCvfPhXvnwr
3z4V758K98PxEoax0ex0+lRRRRDztdwGmbdmD1GSJK5TOsJFZaYSFGFQxibYe1YFSWyspNbe
RP4jEIMMmRDojjmHvCYdGoRUpx9sywcJZhPXLZ3+oAUpgN6LrAiMdc5aQBQnVvKPiI4IAhBg
Tquuz4Xh9roE30yCfLezWfhwZABKrQYUHOnLn9g73uZ2BpQB7HJy6Bien02DaBPMDixRk01R
vxXl+76l9aofGkBAIkTUbY4mlgJJAZGrcd+SXuwl5hMjxxuH4zJwAAlS1bhNYTEp4KyJmZQ0
uRKaP80QmhBKEsa/gfC8PtSHqM74S+r2av72/Uk2uOfpnseO9Xc7SW8d7C8EKML6r24IzpF/
GfbZqNA7gnNZiBeQGfP6S6mFIZBKG7nwwDIrrWCJ8dfsB6oKFzoLs4dfJUh4Dk1WMMMw9qyk
zgIySjP1kcNA0qkBB8NWsGOS53Mps1QMe0LmXmIF9UHXHtC5l5iBfVB1wcAutzggDZDZZeHl
W/SQ6iL1ZgiGJJ+/8Lw+yCZIJjnGSBQhe+PowD39mt+a+0irVlJtTwejNbasSWT1rsobUC2u
g6v/AHIiJI0VkB0U7uwpKwbAlxyzti4k5s75MgLMnB7oSd7Bg1u6xV25dXy27PlYjxYMKZ6j
+2TBIVfGL0D7upRYcux4sGOvMgogbTva7jPErQ+DglwEJietCPiVh0iUN6AzSQ9Rp+n6x7xO
AhO6rMseX1hhhhrKQylYk78k5CwokQm7vULZrLibEQCQ6Tl3pWXE2IgEh0nLvSsbUaUfMjYS
TxDxlSCAhoISkPXfwPheH2UemD51wnEDtPk9HDQ+ykdoXlF9FxHS94jAMLqEAGq4CFpAsl/c
PDgthEKwgCMHkdiMzAA1h/QGJrh5IzBEI1WNg+YdWKFbJERBCrWrdadvHhY9DNc0YYqmEveg
vrP3A8LI7Bg7ORSIOUQQMx3ZEscuAI+n1L8dDgFEkkJPSce11UjAAOZhMZLgyMxuJgDE0ZkR
YqslnkpCMh4khRVYrYTgvMIx+TgsKaG4fYqVKlSpUqPkHEMvEpGGjuybzCPoqVKhiKTrNHdD
ITi+qVKlSpUdSHJwh0mpHpG3bUqOC8IwBAgSaa8BJpsQkjaCsgLCKlaoiYNadOTIejl5F1XJ
/ow9iKJJa6El7nZUBh2eUKISJseI+mpUqVI6M5d8Ny8b2myUQpLyCIADaPsqlSpUqVKlRQBS
kZf1lS20P+fZU6J02PUG0+eCQDx0Pqjw+qpUqVKhHLNrO9Q7ev8ANnX+bOv82df5spPi5RlM
mh5awxCQtRDWBGNRk0lY8PDPDW0Ge21Y8PDPDW0Ge21ZAdDYA8iUVSYopmjaTMMDlXKzX6Ap
Btc31ZKN24/WhImiIch0xLh6RNQRBMzGQ6Ylw9ImoIgmZjAwWkkARQFGxDWcBjyExZ4aS1iD
KU/RoTlEBCPeOOwfTghICoBIwNcUqpgFDWBAFTTXHfEWYoksFskpr2fC8PrcsAlXLjoo5wAA
EBQH0ejfpz0B9JiF61bwVxwS8ZbIA9EGDoEHhPY10OTgMDrTK8krCKdoJmsIbsROuQVnlsu6
L+3d8OzptCehmFTS76j7YQiZx6gg9Xn+kJeqHmnAT8A2qCi8YD0fXqYgtTqInIU7gh6o4YNJ
hECtW8i5AYo9XJ3dqBPlP6zpF76ahjo67Ui6Bvpxk3oXh/zILa8AzmtCdJP7c1LM7q9c+d/3
CyS56ekYDRqIOl3t2/4LP8Fn+Cz/AAWAAABAG2QryCkNkigaTBZgYNMdNbwZ6bXgYNMdNbwZ
6bXhHTvRCCYRrNToxcOeSPdDIO8MJLmwjWwKNfiyULt5+tCBdUy5B6mbD1IRFUkzE5B6mbD1
IRFUkzE44mvS5KGBTowTSmXUI0DpCx90V9r4Xh9c3YWjfDhgID6TPscKQSdNTzW2elfQXRRE
8bMe/BeSnApNfYbSQHR1zvD9Qdie1HE1FPAa8yHItVJ6q+q/rCeH0JeIQilOvb5s3isTIYPr
oJ/bKvhSzrf9JFRkkNBP9pnJuUsU9Ajxn6oHBomt6vA9UwPBUMpdtGjTOmeIvbBbq5IicBAI
TpgqRPIfZ9S/MfheH1PrGtUuDnC9jryP0s9FAULAjdXQ+MUMdMyaZ3aJeZz0j9dhp0thSltl
RvYHEbzs61V2BfDG55mgayT0F8uAgAIAIAzu1r7x756ckAS/rLnEbFELz9D6WA1gPFuL0VTg
zJ0tYCiCFwBB9KBAE4cagWgEjxf7xkqHF/i4f4uDCGtWWTwD2Bqqq0BFhKEqwvQjO9U+3t93
1L8x+F4fTCYKVgbhO07ux6MniuI4ftpsfSANKl6uXoqfLBTFdbQ1TZig2K6H+T0nvno/67Oa
OnCBnn5WGnpVUlQ4bfX2+eN58QuxA9Zi9FycCFvrNHon0/PAH3ygTidCAru9X1YJYZ3ij1Zx
/EJCgahPQHxwEgM4Bn+Sz/JYAQAODs6uR6s7kL53931L8dSUB9MQOVgxkGLWhLggEh3RdXB7
Am3yQFc7tePhpmuLCQtd7vFYTki+YcOgwIIWi7+gQIEHSIJFg+CwQOGwpc8qDYwd7eAfvVTE
KyLK8v0ECBAUvasi2A1LjKDImCGmxXqk7dhCCgzGpkWy8YMwkbIGsHjpRABvlZrgE3ErT/l9
BAgQc9eFWvEuMAmH3FtBaVvjfVdaAB6fpIECBBJVVLR0USVO2AohRSSy5Hmf1nU+PfnqGT74
PTuX/eQnlc98QwNzFxKlxkzfVjSi93A52BSFBkYkzr8AeMabGEKTkdFfkgQBsJe5GNOuBgIi
vuggQIECBAgQIECBAjHkyw4aX5Eh5AlJVloiVtvkzBRRS6g3coKKxZaYrNN9cGgUcdnwvD6A
NpAneowS5Szq2p80jOJJO930Cqus4CYSeWRPFMCoQaAGgHZNxfMSx8pxk1KwlaMR4q7hyC8M
Dc/wOgfR8OQffCTRI6CwPkLv+pHLEC7oUeLg0oBTdFr44kVl3TgVEGgIHhnX+bOv82df5s6/
zYoQB1Fn+yf1kYUcv9MB0Huvzy/X5s03ml/eKIaIWV+96l+Y/C8PoiYQosQHtHu7DCbN5D7d
pjI3doV4Gr3Y34wu23wntOo18n/hkIwHRB+8cAJ25op3am6/S+XMT3wS44EQ0JDgnxz477Z8
d9s+O+2LHaqvVDNrwhEp4Ez4Yg5masTF7VL3Gd6p9vb8v1L8x+F4dqTq42VMU5mjr3ZOtATN
Vk7xMTvHZN/qX9GM1r5wY69SUANVcQOWGp6gnVJdAH6J71/S98eBtRUC+Eit0cZDBnpjd6ur
9I289DhYd8hGE24BJSqdLk8M+Ce2fBPbPgntgMvZAE8Yw2rQAQd7g61qEky6bYzpCCTr+X6l
+OqBKwZrKqi74mPHG7xBUfeMeON/KGR94x49nwvDss1WCQzZCUb8ecOg4PkNLtAKl1euIk6F
zsf32Knm+h74ZMnGgRVxmBxQJDILaRChBeRPTta7y6v0Ct2H1j3w4IhAoAkIaU32A1XvD9c+
ae+fNPfPmnvgmWJQAFyh0wA8Q9jyz53/ADPnf8z53/M+d/zPnf8AM0lyh/n5nqX46mZRqIks
7ETgVD7BaE8x7VhrJOd9J0um3mJjJ+5iRucdzneY3xTdoirzhjonRFqEG+RSUwJKop6Lcmzr
kJnXKu1MKj1d2ASWyCS6wJHTtKlZGm0daxrLnGoZZEAIWkwjTSWqyWdmU0tqYTb5R9JUqVKn
euyItTeWBoS6ny2YFCh2XkaIvVM/7fP+3z/t8qSDuX8HKlSpUqVKlSpUqVKlSpUqVKlSpUqV
KlSpUqVKlSpUt7kDqeVX471XF0tRGkwkICCEdSQOOCCWouYCfHHfBLUfMBPj2O93zm2MKgxY
TpIav0MhpEJoBoM07e6EsEVFFXoTo7AHTNST0ZedU3oSvzGUm9RL9pnLIkxHgHNCjqycznUI
Wiiaon1jASiyj1/ifUvzGkVuPEg8THgDziUdQkbneKr0wEwIA+iO9D5ByFuvfC/c+Xbog95m
iBPB/GepfloXFkaAauBOwQDSBHqg8O/Aio1eXn6QgtAJE4TCaTA4A6H8h6l+SmzcbQEr5GOH
IcRxLQJZBbTGmBIERIRHXCIUYIBFB/L+pfksJadrBBQvVrxyFeTkAwDmWVC7xWE4InmnGopW
zKU6KY6tA8Fvetju2DwU96mBtayuAg6LY4+KJ3NeQyfWhI9dOOPiyNjHkcTS1lchJ0Ux1aB4
Le9bHdsHgp71MDa1lcBB0Wx1aB4Le9bHdsHgp71MDa1lcBB0Wxx8UTua8hk+tCR66ccfFkbG
PI4mlrK5CTopjq0DwW962O7YPBT3qYG1rK4CDotjj4onc15DJ9aEj104G1rK4CDotjj4onc1
5DJ9aEj1044+LI2MeRxNLWVyEnRTHVoHgt71sd2weCnvUwNrWVwEHRbHHxRO5ryGT60JHrpw
OTgc4B/bHHxRO5ryGT60JHrpxx8WRsY8jiaWsrkJOimOrQPBb3rY7tg8FPepgbWsrgIOi2OP
iidzXkMn1oSPXTgcnA5wD+2OPiidzXkMn1oSPXTjj4sjYx5HE0tZXISdFMdWgeC3vWx3bB4K
e9TA2tZXAQdFscfFE7mvIZPrQkeunHHxZGxjyOJydDnQf6YIioIDdKgu38yuKEiI24zUpbLW
+K0UrILyh4+uVxQERG3GKMoWtuNMsmEzMxvpgDIBvbnXK4oSIjbjNSlstb5oUpkrfK4oCIjb
jNSlstb5oUpkrfK4oCIjbjEcGwmHVj+pyyYTMzG+mAMgG9udcrihIiNuM1KWy1vmhSmSt8ri
gIiNuMUZQtbcaZZMJmZjfTK4oCIjbjFGULW3GmWTCZmY30wBkA3tzrlcUJERtxmpS2Wt80KU
yVvlcUBERtxijKFrbjTN4IFUVrPdgGBFJYjfrijKFrbjTLJhMzMb6YAyAb251yuKEiI24zUp
bLW+aFKZK3yuKAiI24xRlC1txplkwmZmN9MnI5NudcUZQtbcaYCJg0TetfLAGQDe3OuVxQkR
G3GalLZa3zQpTJW+VxQERG3GKMoWtuNMsmEzMxvpgDIBvbnXIyODbjTLJhMzMb6flvrUT87T
J4iJmbtkeOCsjRjuSQ7kdhD7oKO6KDs2ugALKiEgdEcedleEiUPTzDfF3JRK5Q3BUQWsaZHR
qB0gUaiAkJs864ihNAiLCtYF6ArRjCFIoLIAlw7EWGV+SqoFQsQQL1FSEmIoTQIiwrWBegK0
YAKc+qSOQAZVTUowaE6EWEMNJBGsRUmghV1RYF6ArRg2Am4qIQcOitiBko1KqYEtwqhsZNs0
CmaWBLBu1hgwspUpwiG8Rpqy/YiigklFSTExMMaOaBTNLAlg3ayr0TJ09oNBRNBlkDMEhZQG
hoFTIpysDQAUqAWjQFrgZQERFBtECt5BLmQ97nUYUWBJGdk1x+bUYAJV6Bkdu0LyUSkjZCZm
wjeM7Ci0RK4kbucSDlqAaq5fh4cohiBBTUJIRM3d6YghuUGpG7HDLAlTAHOTMXmyAMzBmI2b
rmrU1z9dJnq8YoFUAtXbFGRRG5acNCtQJJeFUbUIbMEJsgkl01igVQC1cT3B7/gy1UDcoq8r
E/shMQiYyzwaRPYKCSbCK4aSQB1Bw8ouhkEls92GQ27B3NTYcgi6N4uJBIY/rSfwqWWsAW1Y
exL1LDQKWwAyT0xPHiKQWWFGVwwxggKKlElIJ45P+lpAFGxFod0y3O0KTKuEoMJcFFzTRnCJ
aBtsY8YjIJLewZikkRuFpIqATRJv8s8wKSmssk4mMCFAmAGx2GWEgJE4cO7BZU4LvC4IhZRJ
ScSUSyKwsm37IShaAZIE1UAGhGX35IC5Sb045ZYw8RlQCRYatUzx6pWUWrVG1cvvyQFyk3py
EWQpGi8WVAOitKYe6qlJMqFUdVVctnyqGsk3rJgKrWUErMBAWnWGRCFSkGVCqNqquCiEg7jg
z+vPqcAJULpdEhIkMsggV0AA0AgwUQkHcc1VresNcxE6m7RihLW5wStVAW0GCZKJKIwxuCiO
ouLJK3KFuBJGKqRJEiCaxxAqVBRLWLKH9WASTreGWCSQAEMMlkZY0Y6E86Q0CqCWArCwdTIN
KjeG80kIoywuQo7Q8GJiJloFIJYFdMCwewjh5OmSqxmCEA3WI5YKUcVFygmjCt64JCkIxKIf
3jA0UMrIQCJZCAvOEVPAG49VZl3nAaUpGGEhxn4A75CjQNgUNEmMKzVBrRAVYrq0aAdgWdua
2gDKpWQY1hwIyaR6sXC0QEy8nLQ4KArdR4wxOuLWAjRBhQWgblokZNLW3gCZ3BITry4NAypE
sGqJMaEu2TFkfdCwKHGA1pHoIUJh7SJKLsuwDQMqRLBqiTGhLtkxZH3QsChxgNaB4edigA2s
hJgGtAaBlSJYNUSY0JdsXk4sCGmKsRyHrjx4TUohYlOysA1ofwgBUAVljftAKgCssb/wDYQj
kup5LfPDH4ti8gLbAJWFC2ucODYmnUxIWHq3PiyQg3VBnDg2Jp1MSFh6tz4skIN1QZw4Niad
TLLVeWtXG4EG6oP/AJ5//9k=
--EVF5PPMfhYS0aIcm--
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v3 1/4] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
LGTM.
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
* [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer()
@ 2025-09-02 15:00 Melanie Plageman <melanieplageman@gmail.com>
0 siblings, 0 replies; 210+ messages in thread
From: Melanie Plageman @ 2025-09-02 15:00 UTC (permalink / raw)
@@ -731,6 +741,13 @@ StrategyRejectBuffer(BufferAccessStrategy
strategy, BufferDesc *buf, bool from_r
strategy->buffers[strategy->current] !=3D BufferDescriptorGetBuffe=
r(buf))
return false;
+ buf_state =3D LockBufHdr(buf);
+ lsn =3D BufferGetLSN(buf);
+ UnlockBufHdr(buf, buf_state);
+
+ if (!XLogNeedsFlush(lsn))
+ return true;
I think this should return false.
I am planning to review the other patches later and this is for the
first patch only.
--
Regards,
Nazir Bilal Yavuz
Microsoft
^ permalink raw reply [nested|flat] 210+ messages in thread
end of thread, other threads:[~2025-09-02 15:00 UTC | newest]
Thread overview: 210+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2024-03-18 16:02 [PATCH v5 2/2] Add support for AVX2 in simd.h. Nathan Bossart <nathan@postgresql.org>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v3 1/4] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
2025-09-02 15:00 [PATCH v2 1/9] Refactor goto into for loop in GetVictimBuffer() Melanie Plageman <melanieplageman@gmail.com>
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox