#!!! notice !!!
# Any small change to this file in the main branch
# should be done or reviewed by the maintainer!
-diff -ruN a/storage/innobase/buf/buf0buf.c b/storage/innobase/buf/buf0buf.c
---- a/storage/innobase/buf/buf0buf.c 2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/buf/buf0buf.c 2010-12-03 15:07:31.786968193 +0900
-@@ -4814,6 +4814,7 @@
+--- a/storage/innobase/buf/buf0buf.c
++++ b/storage/innobase/buf/buf0buf.c
+@@ -4372,6 +4372,7 @@
}
total_info->pool_size += pool_info->pool_size;
total_info->lru_len += pool_info->lru_len;
total_info->old_lru_len += pool_info->old_lru_len;
total_info->free_list_len += pool_info->free_list_len;
-@@ -4877,6 +4878,8 @@
+@@ -4437,6 +4438,8 @@
pool_info->pool_size = buf_pool->curr_size;
pool_info->lru_len = UT_LIST_GET_LEN(buf_pool->LRU);
pool_info->old_lru_len = buf_pool->LRU_old_len;
-@@ -4993,14 +4996,16 @@
+@@ -4558,14 +4561,16 @@
ut_ad(pool_info);
fprintf(file,
pool_info->free_list_len,
pool_info->lru_len,
pool_info->old_lru_len,
-diff -ruN a/storage/innobase/buf/buf0flu.c b/storage/innobase/buf/buf0flu.c
---- a/storage/innobase/buf/buf0flu.c 2010-12-03 20:58:26.000000000 +0300
-+++ b/storage/innobase/buf/buf0flu.c 2011-01-07 03:37:41.000000000 +0300
+--- a/storage/innobase/buf/buf0flu.c
++++ b/storage/innobase/buf/buf0flu.c
@@ -75,7 +75,7 @@
static buf_flush_stat_t buf_flush_stat_sum;
/* @} */
-diff -ruN a/storage/innobase/fil/fil0fil.c b/storage/innobase/fil/fil0fil.c
---- a/storage/innobase/fil/fil0fil.c 2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/fil/fil0fil.c 2010-12-03 15:07:31.790357112 +0900
-@@ -4886,3 +4886,30 @@
+--- a/storage/innobase/fil/fil0fil.c
++++ b/storage/innobase/fil/fil0fil.c
+@@ -4897,3 +4897,30 @@
fil_system = NULL;
}
+ return 0;
+ }
+}
-diff -ruN a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
---- a/storage/innobase/handler/ha_innodb.cc 2010-12-03 15:06:58.727955654 +0900
-+++ b/storage/innobase/handler/ha_innodb.cc 2010-12-03 15:07:31.799376984 +0900
-@@ -585,6 +585,8 @@
+--- a/storage/innobase/handler/ha_innodb.cc
++++ b/storage/innobase/handler/ha_innodb.cc
+@@ -604,6 +604,8 @@
(char*) &export_vars.innodb_buffer_pool_pages_dirty, SHOW_LONG},
{"buffer_pool_pages_flushed",
(char*) &export_vars.innodb_buffer_pool_pages_flushed, SHOW_LONG},
{"buffer_pool_pages_free",
(char*) &export_vars.innodb_buffer_pool_pages_free, SHOW_LONG},
#ifdef UNIV_DEBUG
-@@ -10977,6 +10979,16 @@
+@@ -11207,6 +11209,16 @@
"Force InnoDB to not use next-key locking, to use only row-level locking.",
NULL, NULL, FALSE);
#ifdef UNIV_LOG_ARCHIVE
static MYSQL_SYSVAR_STR(log_arch_dir, innobase_log_arch_dir,
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
-@@ -11164,7 +11176,7 @@
+@@ -11394,7 +11406,7 @@
static MYSQL_SYSVAR_STR(version, innodb_version_str,
PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_READONLY,
static MYSQL_SYSVAR_BOOL(use_sys_malloc, srv_use_sys_malloc,
PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY,
-@@ -11249,6 +11261,8 @@
+@@ -11494,6 +11506,8 @@
MYSQL_SYSVAR(thread_concurrency),
MYSQL_SYSVAR(thread_sleep_delay),
MYSQL_SYSVAR(autoinc_lock_mode),
MYSQL_SYSVAR(version),
MYSQL_SYSVAR(use_sys_malloc),
MYSQL_SYSVAR(use_native_aio),
-diff -ruN a/storage/innobase/include/buf0buf.h b/storage/innobase/include/buf0buf.h
---- a/storage/innobase/include/buf0buf.h 2011-01-20 07:37:08.000000000 +0900
-+++ b/storage/innobase/include/buf0buf.h 2011-02-14 15:25:20.859126532 +0900
-@@ -123,6 +123,7 @@
+--- a/storage/innobase/include/buf0buf.h
++++ b/storage/innobase/include/buf0buf.h
+@@ -128,6 +128,7 @@
/* General buffer pool info */
ulint pool_unique_id; /*!< Buffer Pool ID */
ulint pool_size; /*!< Buffer Pool size in pages */
ulint lru_len; /*!< Length of buf_pool->LRU */
ulint old_lru_len; /*!< buf_pool->LRU_old_len */
ulint free_list_len; /*!< Length of buf_pool->free list */
-diff -ruN a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fil.h
---- a/storage/innobase/include/fil0fil.h 2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/include/fil0fil.h 2010-12-03 15:07:31.812028575 +0900
-@@ -726,6 +726,17 @@
+--- a/storage/innobase/include/fil0fil.h
++++ b/storage/innobase/include/fil0fil.h
+@@ -731,6 +731,17 @@
/*============================*/
ulint id); /*!< in: space id */
typedef struct fil_space_struct fil_space_t;
#endif
-diff -ruN a/storage/innobase/include/read0read.h b/storage/innobase/include/read0read.h
---- a/storage/innobase/include/read0read.h 2010-12-04 02:58:26.000000000 +0900
-+++ b/storage/innobase/include/read0read.h 2011-01-21 19:35:44.127631727 +0900
+--- a/storage/innobase/include/read0read.h
++++ b/storage/innobase/include/read0read.h
@@ -88,6 +88,7 @@
void
read_view_print(
const read_view_t* view); /*!< in: read view */
/*********************************************************************//**
Create a consistent cursor view for mysql to be used in cursors. In this
-diff -ruN a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h
---- a/storage/innobase/include/srv0srv.h 2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/include/srv0srv.h 2010-12-03 15:07:31.813958103 +0900
-@@ -145,6 +145,9 @@
- extern char srv_adaptive_flushing;
-
+--- a/storage/innobase/include/srv0srv.h
++++ b/storage/innobase/include/srv0srv.h
+@@ -146,6 +146,9 @@
+ corrupted index and table */
+ extern my_bool srv_load_corrupted;
+extern ulint srv_show_locks_held;
+extern ulint srv_show_verbose_locks;
/* The sort order table of the MySQL latin1_swedish_ci character set
collation */
extern const byte* srv_latin1_ordering;
-@@ -318,6 +321,8 @@
+@@ -328,6 +331,8 @@
buffer pool to disk */
extern ulint srv_buf_pool_flushed;
/** Number of buffer pool reads that led to the
reading of a disk page */
extern ulint srv_buf_pool_reads;
-@@ -699,6 +704,7 @@
+@@ -707,6 +712,7 @@
ulint innodb_buffer_pool_reads; /*!< srv_buf_pool_reads */
ulint innodb_buffer_pool_wait_free; /*!< srv_buf_pool_wait_free */
ulint innodb_buffer_pool_pages_flushed; /*!< srv_buf_pool_flushed */
+ ulint innodb_buffer_pool_pages_LRU_flushed; /*!< buf_lru_flush_page_count */
ulint innodb_buffer_pool_write_requests;/*!< srv_buf_pool_write_requests */
+ ulint innodb_buffer_pool_read_ahead_rnd;/*!< srv_read_ahead_rnd */
ulint innodb_buffer_pool_read_ahead; /*!< srv_read_ahead */
- ulint innodb_buffer_pool_read_ahead_evicted;/*!< srv_read_ahead evicted*/
-diff -ruN a/storage/innobase/include/thr0loc.h b/storage/innobase/include/thr0loc.h
---- a/storage/innobase/include/thr0loc.h 2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/include/thr0loc.h 2010-12-03 15:07:31.815081509 +0900
-@@ -83,6 +83,17 @@
- thr_local_get_in_ibuf_field(void);
- /*=============================*/
-
-+/*************************************************************************
-+Return local hash table informations. */
-+
-+ulint
-+thr_local_hash_cells(void);
-+/*=======================*/
-+
-+ulint
-+thr_local_hash_nodes(void);
-+/*=======================*/
-+
- #ifndef UNIV_NONINL
- #include "thr0loc.ic"
- #endif
-diff -ruN a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.c
---- a/storage/innobase/lock/lock0lock.c 2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/lock/lock0lock.c 2010-12-03 15:07:31.819023998 +0900
-@@ -4374,6 +4374,7 @@
+--- a/storage/innobase/lock/lock0lock.c
++++ b/storage/innobase/lock/lock0lock.c
+@@ -4377,6 +4377,7 @@
putc('\n', file);
block = buf_page_try_get(space, page_no, &mtr);
for (i = 0; i < lock_rec_get_n_bits(lock); ++i) {
-@@ -4400,6 +4401,7 @@
+@@ -4403,6 +4404,7 @@
putc('\n', file);
}
mtr_commit(&mtr);
if (UNIV_LIKELY_NULL(heap)) {
-@@ -4583,7 +4585,7 @@
+@@ -4586,7 +4588,7 @@
}
}
nth_trx++;
goto loop;
}
-@@ -4655,8 +4657,8 @@
+@@ -4658,8 +4660,8 @@
nth_lock++;
" SUPPRESSING FURTHER PRINTS\n",
file);
-diff -ruN a/storage/innobase/read/read0read.c b/storage/innobase/read/read0read.c
---- a/storage/innobase/read/read0read.c 2010-12-04 02:58:26.000000000 +0900
-+++ b/storage/innobase/read/read0read.c 2011-01-21 19:37:08.292650181 +0900
+--- a/storage/innobase/read/read0read.c
++++ b/storage/innobase/read/read0read.c
@@ -357,34 +357,35 @@
void
read_view_print(
(ullint) read_view_get_nth_trx_id(view, i));
}
}
-diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
---- a/storage/innobase/srv/srv0srv.c 2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/srv/srv0srv.c 2010-12-03 15:07:31.824022673 +0900
-@@ -84,6 +84,7 @@
+--- a/storage/innobase/srv/srv0srv.c
++++ b/storage/innobase/srv/srv0srv.c
+@@ -83,6 +83,7 @@
#include "ha_prototypes.h"
#include "trx0i_s.h"
#include "os0sync.h" /* for HAVE_ATOMIC_BUILTINS */
#include "mysql/plugin.h"
#include "mysql/service_thd_wait.h"
-@@ -195,6 +196,9 @@
+@@ -188,6 +189,9 @@
the checkpoints. */
UNIV_INTERN char srv_adaptive_flushing = TRUE;
/** Maximum number of times allowed to conditionally acquire
mutex before switching to blocking wait on the mutex */
#define MAX_MUTEX_NOWAIT 20
-@@ -313,6 +317,7 @@
+@@ -316,6 +320,7 @@
/* variable to count the number of pages that were written from buffer
pool to the disk */
UNIV_INTERN ulint srv_buf_pool_flushed = 0;
/** Number of buffer pool reads that led to the
reading of a disk page */
-@@ -1821,6 +1826,13 @@
+@@ -1825,6 +1830,13 @@
ulint n_reserved;
ibool ret;
mutex_enter(&srv_innodb_monitor_mutex);
current_time = time(NULL);
-@@ -1869,31 +1881,6 @@
+@@ -1873,31 +1885,6 @@
mutex_exit(&dict_foreign_err_mutex);
fputs("--------\n"
"FILE I/O\n"
"--------\n", file);
-@@ -1924,10 +1911,84 @@
+@@ -1928,10 +1915,78 @@
"BUFFER POOL AND MEMORY\n"
"----------------------\n", file);
fprintf(file,
+ " Dictionary cache %lu \t(%lu + %lu)\n"
+ " File system %lu \t(%lu + %lu)\n"
+ " Lock system %lu \t(%lu + %lu)\n"
-+ " Recovery system %lu \t(%lu + %lu)\n"
-+ " Threads %lu \t(%lu + %lu)\n",
++ " Recovery system %lu \t(%lu + %lu)\n",
+
+ (ulong) (btr_search_sys
+ ? (btr_search_sys->hash_index->n_cells * sizeof(hash_cell_t)) : 0)
+ + recv_sys_subtotal),
+ (ulong) ((recv_sys && recv_sys->addr_hash)
+ ? (recv_sys->addr_hash->n_cells * sizeof(hash_cell_t)) : 0),
-+ (ulong) recv_sys_subtotal,
-+
-+ (ulong) (thr_local_hash_cells() * sizeof(hash_cell_t)
-+ + thr_local_hash_nodes()),
-+ (ulong) (thr_local_hash_cells() * sizeof(hash_cell_t)),
-+ (ulong) thr_local_hash_nodes());
++ (ulong) recv_sys_subtotal);
+
fprintf(file, "Dictionary memory allocated " ULINTPF "\n",
dict_sys->size);
-@@ -1943,6 +2004,16 @@
+@@ -1947,6 +2002,16 @@
fprintf(file, "%lu read views open inside InnoDB\n",
UT_LIST_GET_LEN(trx_sys->view_list));
n_reserved = fil_space_get_n_reserved_extents(0);
if (n_reserved > 0) {
fprintf(file,
-@@ -1986,6 +2057,31 @@
+@@ -1990,6 +2055,31 @@
srv_n_rows_deleted_old = srv_n_rows_deleted;
srv_n_rows_read_old = srv_n_rows_read;
fputs("----------------------------\n"
"END OF INNODB MONITOR OUTPUT\n"
"============================\n", file);
-@@ -2029,6 +2125,7 @@
+@@ -2033,6 +2123,7 @@
= srv_buf_pool_write_requests;
export_vars.innodb_buffer_pool_wait_free = srv_buf_pool_wait_free;
export_vars.innodb_buffer_pool_pages_flushed = srv_buf_pool_flushed;
+ export_vars.innodb_buffer_pool_pages_LRU_flushed = buf_lru_flush_page_count;
export_vars.innodb_buffer_pool_reads = srv_buf_pool_reads;
- export_vars.innodb_buffer_pool_read_ahead
- = stat.n_ra_pages_read;
-diff -ruN a/storage/innobase/sync/sync0arr.c b/storage/innobase/sync/sync0arr.c
---- a/storage/innobase/sync/sync0arr.c 2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/sync/sync0arr.c 2010-12-03 15:07:31.826041368 +0900
-@@ -477,7 +477,7 @@
+ export_vars.innodb_buffer_pool_read_ahead_rnd
+ = stat.n_ra_pages_read_rnd;
+--- a/storage/innobase/sync/sync0arr.c
++++ b/storage/innobase/sync/sync0arr.c
+@@ -478,7 +478,7 @@
fprintf(file,
"--Thread %lu has waited at %s line %lu"
- " for %.2f seconds the semaphore:\n",
+ " for %#.5g seconds the semaphore:\n",
- (ulong) os_thread_pf(cell->thread), cell->file,
- (ulong) cell->line,
+ (ulong) os_thread_pf(cell->thread),
+ innobase_basename(cell->file), (ulong) cell->line,
difftime(time(NULL), cell->reservation_time));
-diff -ruN a/storage/innobase/thr/thr0loc.c b/storage/innobase/thr/thr0loc.c
---- a/storage/innobase/thr/thr0loc.c 2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/thr/thr0loc.c 2010-12-03 15:07:31.828023915 +0900
-@@ -49,6 +49,7 @@
-
- /** The hash table. The module is not yet initialized when it is NULL. */
- static hash_table_t* thr_local_hash = NULL;
-+ulint thr_local_hash_n_nodes = 0;
-
- /** Thread local data */
- typedef struct thr_local_struct thr_local_t;
-@@ -221,6 +222,7 @@
- os_thread_pf(os_thread_get_curr_id()),
- local);
-
-+ thr_local_hash_n_nodes++;
- mutex_exit(&thr_local_mutex);
- }
-
-@@ -249,6 +251,7 @@
-
- HASH_DELETE(thr_local_t, hash, thr_local_hash,
- os_thread_pf(id), local);
-+ thr_local_hash_n_nodes--;
-
- mutex_exit(&thr_local_mutex);
-
-@@ -305,3 +308,29 @@
- hash_table_free(thr_local_hash);
- thr_local_hash = NULL;
- }
-+
-+/*************************************************************************
-+Return local hash table informations. */
-+
-+ulint
-+thr_local_hash_cells(void)
-+/*======================*/
-+{
-+ if (thr_local_hash) {
-+ return (thr_local_hash->n_cells);
-+ } else {
-+ return 0;
-+ }
-+}
-+
-+ulint
-+thr_local_hash_nodes(void)
-+/*======================*/
-+{
-+ if (thr_local_hash) {
-+ return (thr_local_hash_n_nodes
-+ * (sizeof(thr_local_t) + MEM_BLOCK_HEADER_SIZE));
-+ } else {
-+ return 0;
-+ }
-+}
-diff -ruN a/storage/innobase/trx/trx0purge.c b/storage/innobase/trx/trx0purge.c
---- a/storage/innobase/trx/trx0purge.c 2010-12-04 02:58:26.000000000 +0900
-+++ b/storage/innobase/trx/trx0purge.c 2011-01-21 19:40:42.086683671 +0900
-@@ -1201,7 +1201,7 @@
+--- a/storage/innobase/trx/trx0purge.c
++++ b/storage/innobase/trx/trx0purge.c
+@@ -1212,7 +1212,7 @@
/*=====================*/
{
fprintf(stderr, "InnoDB: Purge system view:\n");