]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Remove pg_spin_delay().
authorNathan Bossart <nathan@postgresql.org>
Tue, 30 Jun 2026 15:57:54 +0000 (10:57 -0500)
committerNathan Bossart <nathan@postgresql.org>
Tue, 30 Jun 2026 15:57:54 +0000 (10:57 -0500)
This code appears to be an artifact from commit b64d92f1a5 that was
never used for anything.

Reviewed-by: Corey Huinker <corey.huinker@gmail.com>
Discussion: https://postgr.es/m/afouZUH_eUkIj4i4%40nathan

src/include/port/atomics.h
src/include/port/atomics/arch-x86.h
src/include/port/atomics/generic.h

index d8b1d20fe60fae57597b26fd7c4fa89b7b6fa4db..c50d95d29e2e024ea5148942f8ba8597d14e4385 100644 (file)
 #define pg_read_barrier()      pg_read_barrier_impl()
 #define pg_write_barrier()     pg_write_barrier_impl()
 
-/*
- * Spinloop delay - Allow CPU to relax in busy loops
- */
-#define pg_spin_delay() pg_spin_delay_impl()
-
 /*
  * pg_atomic_init_flag - initialize atomic flag.
  *
index 8cfe402c3393560c6ca525bb6e1c19ad11c22ebc..88bba0e5f5cdb2df08a55a249336afadfb95c7f5 100644 (file)
@@ -76,60 +76,6 @@ typedef struct pg_atomic_uint64
 } pg_atomic_uint64;
 #endif /* __x86_64__ */
 
-#endif /* defined(__GNUC__) || defined(__INTEL_COMPILER) */
-
-#if !defined(PG_HAVE_SPIN_DELAY)
-/*
- * This sequence is equivalent to the PAUSE instruction ("rep" is
- * ignored by old IA32 processors if the following instruction is
- * not a string operation); the IA-32 Architecture Software
- * Developer's Manual, Vol. 3, Section 7.7.2 describes why using
- * PAUSE in the inner loop of a spin lock is necessary for good
- * performance:
- *
- *     The PAUSE instruction improves the performance of IA-32
- *     processors supporting Hyper-Threading Technology when
- *     executing spin-wait loops and other routines where one
- *     thread is accessing a shared lock or semaphore in a tight
- *     polling loop. When executing a spin-wait loop, the
- *     processor can suffer a severe performance penalty when
- *     exiting the loop because it detects a possible memory order
- *     violation and flushes the core processor's pipeline. The
- *     PAUSE instruction provides a hint to the processor that the
- *     code sequence is a spin-wait loop. The processor uses this
- *     hint to avoid the memory order violation and prevent the
- *     pipeline flush. In addition, the PAUSE instruction
- *     de-pipelines the spin-wait loop to prevent it from
- *     consuming execution resources excessively.
- */
-#if defined(__GNUC__) || defined(__INTEL_COMPILER)
-#define PG_HAVE_SPIN_DELAY
-static inline void
-pg_spin_delay_impl(void)
-{
-       __asm__ __volatile__(" rep; nop                 \n");
-}
-#elif defined(_MSC_VER) && defined(__x86_64__)
-#define PG_HAVE_SPIN_DELAY
-static __forceinline void
-pg_spin_delay_impl(void)
-{
-       _mm_pause();
-}
-#elif defined(_MSC_VER)
-#define PG_HAVE_SPIN_DELAY
-static __forceinline void
-pg_spin_delay_impl(void)
-{
-       /* See comment for gcc code. Same code, MASM syntax */
-       __asm rep nop;
-}
-#endif
-#endif /* !defined(PG_HAVE_SPIN_DELAY) */
-
-
-#if defined(__GNUC__) || defined(__INTEL_COMPILER)
-
 #define PG_HAVE_ATOMIC_TEST_SET_FLAG
 static inline bool
 pg_atomic_test_set_flag_impl(volatile pg_atomic_flag *ptr)
index fd64b6cbd8681c58b7ff08ce397785de84afc698..daa772e9a6d003e487e1bbdc9ffc84b2e356c245 100644 (file)
 #      define pg_write_barrier_impl pg_memory_barrier_impl
 #endif
 
-#ifndef PG_HAVE_SPIN_DELAY
-#define PG_HAVE_SPIN_DELAY
-#define pg_spin_delay_impl()   ((void)0)
-#endif
-
-
 /* provide fallback */
 #if !defined(PG_HAVE_ATOMIC_FLAG_SUPPORT) && defined(PG_HAVE_ATOMIC_U32_SUPPORT)
 #define PG_HAVE_ATOMIC_FLAG_SUPPORT