# should be done or reviewed by the maintainer!
--- a/storage/innobase/buf/buf0lru.c
+++ b/storage/innobase/buf/buf0lru.c
-@@ -2183,6 +2183,289 @@
+@@ -2197,6 +2197,289 @@
memset(&buf_LRU_stat_cur, 0, sizeof buf_LRU_stat_cur);
}
/*==============*/
--- a/storage/innobase/fil/fil0fil.c
+++ b/storage/innobase/fil/fil0fil.c
-@@ -5299,6 +5299,70 @@
+@@ -5307,6 +5307,70 @@
return(DB_SUCCESS);
}
#ifdef HAVE_LARGE_PAGES
if ((os_use_large_pages = (ibool) my_use_large_pages))
os_large_page_size = (ulint) opt_large_page_size;
-@@ -11925,6 +11929,19 @@
+@@ -11964,6 +11968,19 @@
"Limit the allocated memory for dictionary cache. (0: unlimited)",
NULL, NULL, 0, 0, LONG_MAX, 0);
static struct st_mysql_sys_var* innobase_system_variables[]= {
MYSQL_SYSVAR(additional_mem_pool_size),
MYSQL_SYSVAR(autoextend_increment),
-@@ -12009,6 +12026,8 @@
+@@ -12048,6 +12065,8 @@
MYSQL_SYSVAR(random_read_ahead),
MYSQL_SYSVAR(read_ahead_threshold),
MYSQL_SYSVAR(io_capacity),
an exclusive lock on the buffer frame. The flag is cleared and the x-lock
--- a/storage/innobase/include/fil0fil.h
+++ b/storage/innobase/include/fil0fil.h
-@@ -648,6 +648,14 @@
+@@ -653,6 +653,14 @@
void* message, /*!< in: message for aio handler if non-sync
aio used, else ignored */
trx_t* trx);
handler for completed requests. The aio array of pending requests is divided
--- a/storage/innobase/include/srv0srv.h
+++ b/storage/innobase/include/srv0srv.h
-@@ -361,6 +361,12 @@
+@@ -364,6 +364,12 @@
reading of a disk page */
extern ulint srv_buf_pool_reads;
/** Status variables to be passed to MySQL */
typedef struct export_var_struct export_struc;
-@@ -666,6 +672,16 @@
+@@ -669,6 +675,16 @@
/*=====================*/
void* arg); /*!< in: a dummy parameter required by
os_thread_create */
/* structure to pass status variables to MySQL */
UNIV_INTERN export_struc export_vars;
-@@ -2710,6 +2716,58 @@
- OS_THREAD_DUMMY_RETURN;
- }
+@@ -2708,6 +2714,58 @@
+ /* We count the number of threads in os_thread_exit(). A created
+ thread should always use that to exit and not use return() to exit. */
++ os_thread_exit(NULL);
++
++ OS_THREAD_DUMMY_RETURN;
++}
++
+/*********************************************************************//**
+A thread which restores the buffer pool from a dump file on startup and does
+periodic buffer pool dumps.
+ /* We count the number of threads in os_thread_exit(). A created
+ thread should always use that to exit and not use return() to exit. */
+
-+ os_thread_exit(NULL);
-+
-+ OS_THREAD_DUMMY_RETURN;
-+}
-+
- /**********************************************************************//**
- Check whether any background thread is active.
- @return FALSE if all are are suspended or have exited. */
+ os_thread_exit(NULL);
+
+ OS_THREAD_DUMMY_RETURN;
--- a/storage/innobase/srv/srv0start.c
+++ b/storage/innobase/srv/srv0start.c
@@ -87,6 +87,7 @@
/** We use this mutex to test the return value of pthread_mutex_trylock
on successful locking. HP-UX does NOT return 0, though Linux et al do. */
-@@ -1821,6 +1822,15 @@
+@@ -1841,6 +1842,15 @@
os_thread_create(&srv_monitor_thread, NULL,
thread_ids + 4 + SRV_MAX_N_IO_THREADS);