Commit 7f48c174 authored by Marko Mäkelä's avatar Marko Mäkelä

Bug #12950803 62294: BUF_BUDDY_RELOCATE CALLS GETTIMEOFDAY ...

buf_buddy_relocate(): The ut_time_us() function is needed for
statistics, calculating the total time spent on relocating blocks.
Until now, we invoked ut_time_us() every time buf_buddy_relocate() was
called. Fix: Only call ut_time_us() when the block can be relocated.
After this fix, the reported relocated_usec will no longer include the
time for the page_hash lookup and for acquiring the block mutex.

Approved by Sunny Bains on IM
parent 2f49da3f
2011-09-06 The InnoDB Team
* buf/buf0buddy.c:
Fix Bug#12950803 62294: BUF_BUDDY_RELOCATE CALLS GETTIMEOFDAY
WHILE HOLDING BUFFER POOL MUTEX
2011-09-06 The InnoDB Team 2011-09-06 The InnoDB Team
* include/trx0undo.h, trx/trx0rec.c, trx/trx0undo.c: * include/trx0undo.h, trx/trx0rec.c, trx/trx0undo.c:
......
...@@ -327,7 +327,6 @@ buf_buddy_relocate( ...@@ -327,7 +327,6 @@ buf_buddy_relocate(
{ {
buf_page_t* bpage; buf_page_t* bpage;
const ulint size = BUF_BUDDY_LOW << i; const ulint size = BUF_BUDDY_LOW << i;
ullint usec = ut_time_us(NULL);
mutex_t* mutex; mutex_t* mutex;
ulint space; ulint space;
ulint page_no; ulint page_no;
...@@ -394,6 +393,7 @@ buf_buddy_relocate( ...@@ -394,6 +393,7 @@ buf_buddy_relocate(
if (buf_page_can_relocate(bpage)) { if (buf_page_can_relocate(bpage)) {
/* Relocate the compressed page. */ /* Relocate the compressed page. */
ullint usec = ut_time_us(NULL);
ut_a(bpage->zip.data == src); ut_a(bpage->zip.data == src);
memcpy(dst, src, size); memcpy(dst, src, size);
bpage->zip.data = dst; bpage->zip.data = dst;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment