mariadb/storage/innobase/sync
Marko Mäkelä 81f25fdc74 MDEV-37244: Avoid spin loop on page I/O waits
While waiting for for I/O completion, let us skip spin loops.
Even on fast storage, reading a page into the buffer pool takes
so long that a spin loop would only end up wasting CPU time.

block_lock::s_lock_nospin(): A no-spin variant of acquiring a shared
buffer page latch. Regular s_lock() always involveis a spin loop.

ssux_lock_impl::rd_lock_spin(), ssux_lock_impl::rd_lock_nospin():
Split from rd_wait().

ssux_lock_impl::rd_lock(): Invoke either rd_lock_nospin() or
rd_lock_try() and rd_lock_spin().

buf_page_get_low(): After acquiring a page latch on an io-fixed block,
try to optimize operations on the page latch.

Reviewed by: Thirunarayanan Balathandayuthapani
2025-10-17 09:41:50 +03:00
..
cache.cc MDEV-35566 Ensure compatibility with ARMv9 by updating .arch directive 2025-08-15 09:47:40 +03:00
srw_lock.cc MDEV-37244: Avoid spin loop on page I/O waits 2025-10-17 09:41:50 +03:00