agora inbox for pgsql-hackers@postgresql.org  
help / color / mirror / Atom feed
[PATCH v2 2/3] Add USDT for split location benchmarking
133+ messages / 1 participants
[nested] [flat]

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread

* [PATCH v2 2/3] Add USDT for split location benchmarking
@ 2026-06-15 14:39 Dmitrii Dolgov <9erthalion6@gmail.com>
  0 siblings, 0 replies; 133+ messages in thread

From: Dmitrii Dolgov @ 2026-06-15 14:39 UTC (permalink / raw)

Add new USDTs probe nbtree__page__findsplit__(start / done) for
benchmarking of split logic.
---
 src/backend/access/nbtree/nbtsplitloc.c | 5 +++++
 src/backend/utils/probes.d              | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/src/backend/access/nbtree/nbtsplitloc.c b/src/backend/access/nbtree/nbtsplitloc.c
index de9eca3c8b2..c64fef5ab27 100644
--- a/src/backend/access/nbtree/nbtsplitloc.c
+++ b/src/backend/access/nbtree/nbtsplitloc.c
@@ -17,6 +17,7 @@
 #include "access/nbtree.h"
 #include "access/tableam.h"
 #include "common/int.h"
+#include "pg_trace.h"
 
 typedef enum
 {
@@ -152,6 +153,8 @@ _bt_findsplitloc(Relation rel,
 	SplitPoint	leftpage,
 				rightpage;
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_START(origpage);
+
 	opaque = BTPageGetOpaque(origpage);
 	maxoff = PageGetMaxOffsetNumber(origpage);
 
@@ -425,6 +428,8 @@ _bt_findsplitloc(Relation rel,
 									 strategy);
 	pfree(state.splits);
 
+	TRACE_POSTGRESQL_NBTREE_PAGE_FINDSPLIT_DONE(origpage);
+
 	return firstrightoff;
 }
 
diff --git a/src/backend/utils/probes.d b/src/backend/utils/probes.d
index d827ed0201c..b90b708d862 100644
--- a/src/backend/utils/probes.d
+++ b/src/backend/utils/probes.d
@@ -94,4 +94,7 @@ provider postgresql {
 
 	probe nbtree__page__split(BlockNumber);
 	probe nbtree__page__truncate(int);
+
+	probe nbtree__page__findsplit__start(Page);
+	probe nbtree__page__findsplit__done(Page);
 };
-- 
2.52.0


--hfljrm32b5osvvug
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: attachment;
	filename="v2-0003-Randomize-nbtree-split-location-to-avoid-oscillat.patch"
Content-Transfer-Encoding: 8bit



^ permalink  raw  reply  [nested|flat] 133+ messages in thread


end of thread, other threads:[~2026-06-15 14:39 UTC | newest]

Thread overview: 133+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@gmail.com>
2026-06-15 14:39 [PATCH v2 2/3] Add USDT for split location benchmarking Dmitrii Dolgov <9erthalion6@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