diff -ruN a/storage/innobase/buf/buf0lru.c b/storage/innobase/buf/buf0lru.c
--- a/storage/innobase/buf/buf0lru.c 2010-12-03 15:49:59.185023424 +0900
+++ b/storage/innobase/buf/buf0lru.c 2010-12-04 15:33:37.626482350 +0900
-@@ -2250,6 +2250,285 @@
+@@ -2258,6 +2258,284 @@
memset(&buf_LRU_stat_cur, 0, sizeof buf_LRU_stat_cur);
}
+ if (strstr(srv_data_file_names[i], LRU_DUMP_FILE) != NULL) {
+ fprintf(stderr,
+ " InnoDB: The name '%s' seems to be used for"
-+ " innodb_data_file_path. Dumping LRU list is not"
-+ " done for safeness.\n", LRU_DUMP_FILE);
++ " innodb_data_file_path. For safety, dumping of the LRU list"
++ " is not being done.\n", LRU_DUMP_FILE);
+ goto end;
+ }
+ }
+ UNIV_PAGE_SIZE);
+ if (!success) {
+ fprintf(stderr,
-+ " InnoDB: cannot read page %lu of %s,"
-+ " or meet unexpected terminal.\n",
++ " InnoDB: either could not read page %lu of %s,"
++ " or terminated unexpectedly.\n",
+ buffers, LRU_DUMP_FILE);
+ goto end;
+ }
+ continue;
+ }
+
-+ if (fil_area_is_exist(space_id, zip_size, page_no, 0,
-+ zip_size ? zip_size : UNIV_PAGE_SIZE)) {
++ if (fil_is_exist(space_id, page_no)) {
+
+ tablespace_version = fil_space_get_version(space_id);
+
diff -ruN a/storage/innobase/fil/fil0fil.c b/storage/innobase/fil/fil0fil.c
--- a/storage/innobase/fil/fil0fil.c 2010-12-03 17:49:11.581025127 +0900
+++ b/storage/innobase/fil/fil0fil.c 2010-12-04 15:33:37.632482885 +0900
-@@ -4939,6 +4939,78 @@
+@@ -4967,6 +4967,70 @@
return(DB_SUCCESS);
}
+Confirm whether the parameters are valid or not */
+UNIV_INTERN
+ibool
-+fil_area_is_exist(
++fil_is_exist(
+/*==============*/
+ ulint space_id, /*!< in: space id */
-+ ulint zip_size, /*!< in: compressed page size in bytes;
-+ 0 for uncompressed pages */
-+ ulint block_offset, /*!< in: offset in number of blocks */
-+ ulint byte_offset, /*!< in: remainder of offset in bytes; in
-+ aio this must be divisible by the OS block
-+ size */
-+ ulint len) /*!< in: how many bytes to read or write; this
-+ must not cross a file boundary; in aio this
-+ must be a block size multiple */
++ ulint block_offset) /*!< in: offset in number of blocks */
+{
+ fil_space_t* space;
+ fil_node_t* node;
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 17:49:11.589956135 +0900
+++ b/storage/innobase/handler/ha_innodb.cc 2010-12-04 15:33:37.645555490 +0900
-@@ -11708,6 +11708,12 @@
+@@ -11706,6 +11706,12 @@
"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),
-@@ -11791,6 +11797,7 @@
+@@ -11788,6 +11794,7 @@
#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
MYSQL_SYSVAR(read_ahead_threshold),
MYSQL_SYSVAR(io_capacity),
}
static const char plugin_author[] = "Innobase Oy";
-@@ -4255,6 +4256,36 @@
+@@ -4254,6 +4255,36 @@
"Hello!");
goto end_func;
}
+ else if (!strncasecmp("XTRA_LRU_DUMP", ptr, 13)) {
+ ut_print_timestamp(stderr);
-+ fprintf(stderr, " InnoDB: administration command 'XTRA_LRU_DUMP'"
++ fprintf(stderr, " InnoDB: Administrative command 'XTRA_LRU_DUMP'"
+ " was detected.\n");
+
+ if (buf_LRU_file_dump()) {
+ }
+ else if (!strncasecmp("XTRA_LRU_RESTORE", ptr, 16)) {
+ ut_print_timestamp(stderr);
-+ fprintf(stderr, " InnoDB: administration command 'XTRA_LRU_RESTORE'"
++ fprintf(stderr, " InnoDB: Administrative command 'XTRA_LRU_RESTORE'"
+ " was detected.\n");
+
+ if (buf_LRU_file_restore()) {
diff -ruN a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fil.h
--- a/storage/innobase/include/fil0fil.h 2010-12-03 17:49:11.597953501 +0900
+++ b/storage/innobase/include/fil0fil.h 2010-12-04 15:33:37.684551372 +0900
-@@ -644,6 +644,22 @@
+@@ -644,6 +644,14 @@
void* message, /*!< in: message for aio handler if non-sync
aio used, else ignored */
trx_t* trx);
+Confirm whether the parameters are valid or not */
+UNIV_INTERN
+ibool
-+fil_area_is_exist(
++fil_is_exist(
+/*==============*/
+ ulint space_id, /*!< in: space id */
-+ ulint zip_size, /*!< in: compressed page size in bytes;
-+ 0 for uncompressed pages */
-+ ulint block_offset, /*!< in: offset in number of blocks */
-+ ulint byte_offset, /*!< in: remainder of offset in bytes; in
-+ aio this must be divisible by the OS block
-+ size */
-+ ulint len); /*!< in: how many bytes to read or write; this
-+ must not cross a file boundary; in aio this
-+ must be a block size multiple */
++ ulint block_offset); /*!< in: offset in number of blocks */
/**********************************************************************//**
Waits for an aio operation to complete. This function is used to write the
handler for completed requests. The aio array of pending requests is divided
/** Status variables to be passed to MySQL */
typedef struct export_var_struct export_struc;
-@@ -655,6 +658,16 @@
+@@ -663,6 +666,16 @@
/*=====================*/
void* arg); /*!< in: a dummy parameter required by
os_thread_create */
diff -ruN a/storage/innobase/srv/srv0srv.c b/storage/innobase/srv/srv0srv.c
--- a/storage/innobase/srv/srv0srv.c 2010-12-03 17:49:11.620986661 +0900
+++ b/storage/innobase/srv/srv0srv.c 2010-12-04 15:33:37.708550811 +0900
-@@ -327,6 +327,9 @@
+@@ -329,6 +329,9 @@
reading of a disk page */
UNIV_INTERN ulint srv_buf_pool_reads = 0;
/* structure to pass status variables to MySQL */
UNIV_INTERN export_struc export_vars;
-@@ -2663,6 +2666,56 @@
+@@ -2697,6 +2700,56 @@
/* 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. */
+ time_t time_elapsed;
+
+#ifdef UNIV_DEBUG_THREAD_CREATION
-+ fprintf(stderr, "LRU dump/restore thread starts, id %lu\n",
++ fprintf(stderr, "The LRU dump/restore thread has started, id %lu\n",
+ os_thread_pf(os_thread_get_curr_id()));
+#endif
+
/** 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. */
-@@ -1737,6 +1737,10 @@
+@@ -1813,6 +1813,10 @@
os_thread_create(&srv_monitor_thread, NULL,
thread_ids + 4 + SRV_MAX_N_IO_THREADS);