diff options
Diffstat (limited to 'storage/innobase/include/sync0rw.ic')
-rw-r--r-- | storage/innobase/include/sync0rw.ic | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/storage/innobase/include/sync0rw.ic b/storage/innobase/include/sync0rw.ic index 7fcac01e5ba..169cbdd9aa5 100644 --- a/storage/innobase/include/sync0rw.ic +++ b/storage/innobase/include/sync0rw.ic @@ -226,22 +226,8 @@ rw_lock_lock_word_decr( caused by concurrent executions of rw_lock_s_lock(). */ -#if 1 /* FIXME: MDEV-22871 Spurious contention between rw_lock_s_lock() */ - - /* When the number of concurrently executing threads - exceeds the number of available processor cores, - multiple buf_pool.page_hash S-latch requests would - conflict here, mostly in buf_page_get_low(). We should - implement a simpler rw-lock where the S-latch - acquisition would be a simple fetch_add(1) followed by - either an optional load() loop to wait for the X-latch - to be released, or a fetch_sub(1) and a retry. - - For now, we work around the problem with a delay in - this loop. It helped a little on some systems and was - reducing performance on others. */ - (void) LF_BACKOFF(); -#endif + /* Note: unlike this implementation, rw_lock::read_lock() + allows concurrent calls without a spin loop */ } /* A real conflict was detected. */ |