Unnecessary LRU list mutex acquisition in buf_page_io_complete()

Bug #1181269 reported by Laurynas Biveinis on 2013-05-17
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server
Status tracked in 5.6
Laurynas Biveinis
Laurynas Biveinis

Bug Description

buf_page_io_complete() acquires the LRU list mutex unconditionally for BUF_IO_WRITE flushes for the buf_flush_write_complete() call. The latter needs the LRU list mutex for the LRU list flushes, and it used to need it for the flush list flushes as well, because it calls buf_flush_remove() which may call LRU-mutex-needing buf_LRU_insert_zip_clean().

But since the upstream fix for http://bugs.mysql.com/bug.php?id=61341, released in 5.1.60, buf_flush_remove() calls buf_LRU_insert_zip_clean() iff UNIV_DEBUG || UNIV_BUF_DEBUG. Which means that release builds do not need to acquire LRU list mutex in buf_page_io_complete() for flush list flushes anymore.

tags: added: xtradb

5.5 is already attempting to avoid this. But there is a bug there in that compressed page flush list flushes will still acquire the LRU list mutex unnecessarily.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers