Unnecessary LRU list mutex acquisition in buf_page_io_complete()

Bug #1181269 reported by Laurynas Biveinis
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Invalid
Undecided
Unassigned
5.1
Fix Released
Wishlist
Laurynas Biveinis
5.5
Fix Released
Wishlist
Laurynas Biveinis
5.6
Invalid
Undecided
Unassigned

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: xtradb

Related branches

tags: added: xtradb
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

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.

Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-2953

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.