packages (MYSQL_5_1): mysql/mysql-innodb_extend_slow.patch, mysql/mysql-inn...

glen glen at pld-linux.org
Fri Dec 17 12:41:55 CET 2010


Author: glen                         Date: Fri Dec 17 11:41:55 2010 GMT
Module: packages                      Tag: MYSQL_5_1
---- Log message:
- add percona patches (release-5.1.53-11)

---- Files affected:
packages/mysql:
   mysql-innodb_extend_slow.patch (1.1 -> 1.2) , mysql-innodb_split_buf_pool_mutex.patch (1.2 -> 1.3) , mysql-microsec_process.patch (1.2 -> 1.3) , mysql-userstat.patch (1.1 -> 1.2) , mysql.spec (1.496.2.1 -> 1.496.2.2) , mysql-bug580324.patch (NONE -> 1.1.2.1)  (NEW), mysql-bug677407.patch (NONE -> 1.1.2.1)  (NEW), mysql-error_pad.patch (NONE -> 1.1.2.1)  (NEW), mysql-i_s_innodb_buffer_pool_pages.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_adjust_defaults.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_admin_command_base.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_deadlock_count.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_dict_size_limit.patch (NONE -> 1.2.2.1)  (NEW), mysql-innodb_expand_import.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_expand_undo_slots.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_extra_rseg.patch (NONE -> 1.2.2.1)  (NEW), mysql-innodb_fast_checksum.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_files_extend.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_fix
 _misc.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_io_patches.patch (NONE -> 1.1.4.1)  (NEW), mysql-innodb_lru_dump_restore.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_opt_lru_count.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_overwrite_relay_log_info.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_pass_corrupt_table.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_purge_thread.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_recovery_patches.patch (NONE -> 1.1.4.1)  (NEW), mysql-innodb_separate_doublewrite.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_show_enhancements.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_show_lock_name.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_show_status.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_show_sys_tables.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_stats.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_swap_builtin_plugin.patch (NONE -> 1.1.2.1)  (NEW), mysql-innodb_thread_concurrency_timer_based.patch (NONE -> 1.2.2.1)  (NEW), mysql-mysql_dump_igno
 re_ct.patch (NONE -> 1.1.2.1)  (NEW), mysql-optimizer_fix.patch (NONE -> 1.1.2.1)  (NEW), mysql-profiling_slow.patch (NONE -> 1.2.2.1)  (NEW), mysql-query_cache_enhance.patch (NONE -> 1.1.2.1)  (NEW), mysql-show_patches.patch (NONE -> 1.1.4.1)  (NEW), mysql-show_temp_51.patch (NONE -> 1.1.2.1)  (NEW), mysql-slow_extended.patch (NONE -> 1.1.2.1)  (NEW), mysql-suppress_log_warning_1592.patch (NONE -> 1.1.2.1)  (NEW)

---- Diffs:

================================================================
Index: packages/mysql/mysql-innodb_extend_slow.patch
diff -u packages/mysql/mysql-innodb_extend_slow.patch:1.1 packages/mysql/mysql-innodb_extend_slow.patch:1.2
--- packages/mysql/mysql-innodb_extend_slow.patch:1.1	Wed Dec 15 23:22:51 2010
+++ packages/mysql/mysql-innodb_extend_slow.patch	Fri Dec 17 12:41:48 2010
@@ -5,9 +5,9 @@
 #!!! 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-12-03 15:49:59.175955882 +0900
-+++ b/storage/innobase/buf/buf0buf.c	2010-12-03 17:42:42.074307123 +0900
+diff -ruN a/storage/innodb_plugin/buf/buf0buf.c b/storage/innodb_plugin/buf/buf0buf.c
+--- a/storage/innodb_plugin/buf/buf0buf.c	2010-08-27 16:13:11.061058561 +0900
++++ b/storage/innodb_plugin/buf/buf0buf.c	2010-08-27 16:30:47.341987400 +0900
 @@ -51,6 +51,40 @@
  #include "dict0dict.h"
  #include "log0recv.h"
@@ -49,7 +49,7 @@
  
  /*
  		IMPLEMENTATION OF THE BUFFER POOL
-@@ -2399,11 +2433,19 @@
+@@ -1726,10 +1760,18 @@
  	mutex_t*	block_mutex;
  	ibool		must_read;
  	unsigned	access_time;
@@ -58,7 +58,6 @@
 +	ulint		ms;
 +	ib_uint64_t	start_time;
 +	ib_uint64_t	finish_time;
- 	buf_pool_t*	buf_pool = buf_pool_get(space, offset);
  
  #ifndef UNIV_LOG_DEBUG
  	ut_ad(!ibuf_inside());
@@ -69,16 +68,16 @@
  	buf_pool->stat.n_page_gets++;
  
  	for (;;) {
-@@ -2421,7 +2463,7 @@
- 		//buf_pool_mutex_exit(buf_pool);
- 		rw_lock_s_unlock(&buf_pool->page_hash_latch);
+@@ -1746,7 +1788,7 @@
+ 		//buf_pool_mutex_exit();
+ 		rw_lock_s_unlock(&page_hash_latch);
  
 -		buf_read_page(space, zip_size, offset);
 +		buf_read_page(space, zip_size, offset, trx);
  
  #if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
  		ut_a(++buf_dbg_counter % 37 || buf_validate());
-@@ -2499,6 +2541,13 @@
+@@ -1822,6 +1864,13 @@
  		/* Let us wait until the read operation
  		completes */
  
@@ -92,7 +91,7 @@
  		for (;;) {
  			enum buf_io_fix	io_fix;
  
-@@ -2513,6 +2562,12 @@
+@@ -1836,6 +1885,12 @@
  				break;
  			}
  		}
@@ -105,19 +104,19 @@
  	}
  
  #ifdef UNIV_IBUF_COUNT_DEBUG
-@@ -2825,6 +2880,11 @@
+@@ -2092,6 +2147,11 @@
  	ibool		must_read;
  	ulint		retries = 0;
- 	mutex_t*	block_mutex = NULL;
-+	trx_t*		trx = NULL;
-+	ulint		sec;
-+	ulint		ms;
-+	ib_uint64_t	start_time;
-+	ib_uint64_t	finish_time;
- 	buf_pool_t*	buf_pool = buf_pool_get(space, offset);
+ 	mutex_t*	block_mutex;
++	trx_t*          trx = NULL;
++	ulint           sec;
++	ulint           ms;
++	ib_uint64_t     start_time;
++	ib_uint64_t     finish_time;
  
  	ut_ad(mtr);
-@@ -2842,6 +2902,9 @@
+ 	ut_ad(mtr->state == MTR_ACTIVE);
+@@ -2106,6 +2166,9 @@
  #ifndef UNIV_LOG_DEBUG
  	ut_ad(!ibuf_inside() || ibuf_page(space, zip_size, offset, NULL));
  #endif
@@ -125,9 +124,9 @@
 +		trx = innobase_get_trx();
 +	}
  	buf_pool->stat.n_page_gets++;
- 	fold = buf_page_address_fold(space, offset);
  loop:
-@@ -2915,7 +2978,7 @@
+ 	block = guess;
+@@ -2159,7 +2222,7 @@
  			return(NULL);
  		}
  
@@ -136,7 +135,7 @@
  			retries = 0;
  		} else if (retries < BUF_PAGE_READ_MAX_RETRIES) {
  			++retries;
-@@ -3178,6 +3241,13 @@
+@@ -2444,6 +2507,13 @@
  			/* Let us wait until the read operation
  			completes */
  
@@ -150,7 +149,7 @@
  			for (;;) {
  				enum buf_io_fix	io_fix;
  
-@@ -3192,6 +3262,12 @@
+@@ -2458,6 +2528,12 @@
  					break;
  				}
  			}
@@ -163,7 +162,7 @@
  		}
  
  		fix_type = MTR_MEMO_BUF_FIX;
-@@ -3217,13 +3293,17 @@
+@@ -2483,13 +2559,17 @@
  		/* In the case of a first access, try to apply linear
  		read-ahead */
  
@@ -182,7 +181,7 @@
  	return(block);
  }
  
-@@ -3247,6 +3327,7 @@
+@@ -2512,6 +2592,7 @@
  	unsigned	access_time;
  	ibool		success;
  	ulint		fix_type;
@@ -190,7 +189,7 @@
  
  	ut_ad(block);
  	ut_ad(mtr);
-@@ -3324,13 +3405,17 @@
+@@ -2589,13 +2670,17 @@
  #ifdef UNIV_DEBUG_FILE_ACCESSES
  	ut_a(block->page.file_page_was_freed == FALSE);
  #endif
@@ -209,8 +208,8 @@
  	}
  
  #ifdef UNIV_IBUF_COUNT_DEBUG
-@@ -3340,6 +3425,9 @@
- 	buf_pool = buf_pool_from_block(block);
+@@ -2604,6 +2689,9 @@
+ #endif
  	buf_pool->stat.n_page_gets++;
  
 +	if (innobase_get_slow_log()) {
@@ -219,15 +218,15 @@
  	return(TRUE);
  }
  
-@@ -3362,6 +3450,7 @@
- 	buf_pool_t*	buf_pool;
+@@ -2625,6 +2713,7 @@
+ {
  	ibool		success;
  	ulint		fix_type;
 +	trx_t*		trx = NULL;
  
  	ut_ad(mtr);
  	ut_ad(mtr->state == MTR_ACTIVE);
-@@ -3448,6 +3537,11 @@
+@@ -2709,6 +2798,11 @@
  #endif
  	buf_pool->stat.n_page_gets++;
  
@@ -239,10 +238,10 @@
  	return(TRUE);
  }
  
-diff -ruN a/storage/innobase/buf/buf0rea.c b/storage/innobase/buf/buf0rea.c
---- a/storage/innobase/buf/buf0rea.c	2010-12-03 17:32:15.617037263 +0900
-+++ b/storage/innobase/buf/buf0rea.c	2010-12-03 17:42:42.075297193 +0900
-@@ -77,7 +77,8 @@
+diff -ruN a/storage/innodb_plugin/buf/buf0rea.c b/storage/innodb_plugin/buf/buf0rea.c
+--- a/storage/innodb_plugin/buf/buf0rea.c	2010-08-27 16:23:31.014020792 +0900
++++ b/storage/innodb_plugin/buf/buf0rea.c	2010-08-27 16:30:47.342987531 +0900
+@@ -75,7 +75,8 @@
  			treat the tablespace as dropped; this is a timestamp we
  			use to stop dangling page reads from a tablespace
  			which we have DISCARDed + IMPORTed back */
@@ -252,9 +251,9 @@
  {
  	buf_page_t*	bpage;
  	ulint		wake_later;
-@@ -179,15 +180,15 @@
+@@ -176,15 +177,15 @@
+ 	ut_ad(buf_page_in_file(bpage));
  
- 	thd_wait_begin(NULL, THD_WAIT_DISKIO);
  	if (zip_size) {
 -		*err = fil_io(OS_FILE_READ | wake_later,
 +		*err = _fil_io(OS_FILE_READ | wake_later,
@@ -270,9 +269,9 @@
 -			      ((buf_block_t*) bpage)->frame, bpage);
 +			      ((buf_block_t*) bpage)->frame, bpage, trx);
  	}
- 	thd_wait_end(NULL);
  	ut_a(*err == DB_SUCCESS);
-@@ -213,7 +214,8 @@
+ 
+@@ -209,7 +210,8 @@
  /*==========*/
  	ulint	space,	/*!< in: space id */
  	ulint	zip_size,/*!< in: compressed page size in bytes, or 0 */
@@ -280,9 +279,9 @@
 +	ulint	offset,	/*!< in: page number */
 +	trx_t*	trx)
  {
- 	buf_pool_t*	buf_pool = buf_pool_get(space, offset);
  	ib_int64_t	tablespace_version;
-@@ -227,7 +229,7 @@
+ 	ulint		count;
+@@ -222,7 +224,7 @@
  
  	count = buf_read_page_low(&err, TRUE, BUF_READ_ANY_PAGE, space,
  				  zip_size, FALSE,
@@ -291,7 +290,7 @@
  	srv_buf_pool_reads += count;
  	if (err == DB_TABLESPACE_DELETED) {
  		ut_print_timestamp(stderr);
-@@ -278,8 +280,9 @@
+@@ -273,8 +275,9 @@
  /*==================*/
  	ulint	space,	/*!< in: space id */
  	ulint	zip_size,/*!< in: compressed page size in bytes, or 0 */
@@ -300,9 +299,9 @@
  			must want access to this page (see NOTE 3 above) */
 +	trx_t*	trx)
  {
- 	buf_pool_t*	buf_pool = buf_pool_get(space, offset);
  	ib_int64_t	tablespace_version;
-@@ -500,7 +503,7 @@
+ 	buf_page_t*	bpage;
+@@ -497,7 +500,7 @@
  			count += buf_read_page_low(
  				&err, FALSE,
  				ibuf_mode | OS_AIO_SIMULATED_WAKE_LATER,
@@ -311,7 +310,7 @@
  			if (err == DB_TABLESPACE_DELETED) {
  				ut_print_timestamp(stderr);
  				fprintf(stderr,
-@@ -594,7 +597,7 @@
+@@ -587,7 +590,7 @@
  		buf_read_page_low(&err, sync && (i + 1 == n_stored),
  				  BUF_READ_ANY_PAGE, space_ids[i],
  				  zip_size, TRUE, space_versions[i],
@@ -320,7 +319,7 @@
  
  		if (UNIV_UNLIKELY(err == DB_TABLESPACE_DELETED)) {
  tablespace_deleted:
-@@ -736,12 +739,12 @@
+@@ -728,12 +731,12 @@
  		if ((i + 1 == n_stored) && sync) {
  			buf_read_page_low(&err, TRUE, BUF_READ_ANY_PAGE, space,
  					  zip_size, TRUE, tablespace_version,
@@ -335,10 +334,10 @@
  		}
  	}
  
-diff -ruN a/storage/innobase/fil/fil0fil.c b/storage/innobase/fil/fil0fil.c
---- a/storage/innobase/fil/fil0fil.c	2010-12-03 15:53:54.610037199 +0900
-+++ b/storage/innobase/fil/fil0fil.c	2010-12-03 17:42:42.079064198 +0900
-@@ -4349,7 +4349,7 @@
+diff -ruN a/storage/innodb_plugin/fil/fil0fil.c b/storage/innodb_plugin/fil/fil0fil.c
+--- a/storage/innodb_plugin/fil/fil0fil.c	2010-08-27 16:15:55.187400372 +0900
++++ b/storage/innodb_plugin/fil/fil0fil.c	2010-08-27 16:30:47.346992376 +0900
+@@ -4325,7 +4325,7 @@
  				 node->name, node->handle, buf,
  				 offset_low, offset_high,
  				 page_size * n_pages,
@@ -347,7 +346,7 @@
  #endif
  		if (success) {
  			node->size += n_pages;
-@@ -4676,7 +4676,7 @@
+@@ -4652,7 +4652,7 @@
  i/o on a tablespace which does not exist */
  UNIV_INTERN
  ulint
@@ -356,7 +355,7 @@
  /*===*/
  	ulint	type,		/*!< in: OS_FILE_READ or OS_FILE_WRITE,
  				ORed to OS_FILE_LOG, if a log i/o
-@@ -4701,8 +4701,9 @@
+@@ -4677,8 +4677,9 @@
  	void*	buf,		/*!< in/out: buffer where to store read data
  				or from where to write; in aio this must be
  				appropriately aligned */
@@ -367,7 +366,7 @@
  {
  	ulint		mode;
  	fil_space_t*	space;
-@@ -4872,7 +4873,7 @@
+@@ -4848,7 +4849,7 @@
  #else
  	/* Queue the aio request */
  	ret = os_aio(type, mode | wake_later, node->name, node->handle, buf,
@@ -376,10 +375,10 @@
  #endif
  	ut_a(ret);
  
-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:36:44.293955189 +0900
-+++ b/storage/innobase/handler/ha_innodb.cc	2010-12-03 17:42:42.090024586 +0900
-@@ -1528,6 +1528,16 @@
+diff -ruN a/storage/innodb_plugin/handler/ha_innodb.cc b/storage/innodb_plugin/handler/ha_innodb.cc
+--- a/storage/innodb_plugin/handler/ha_innodb.cc	2010-08-27 16:30:34.589021493 +0900
++++ b/storage/innodb_plugin/handler/ha_innodb.cc	2010-08-27 16:30:47.356987871 +0900
+@@ -1372,6 +1372,16 @@
  	trx->check_unique_secondary = !thd_test_options(
  		thd, OPTION_RELAXED_UNIQUE_CHECKS);
  
@@ -396,7 +395,7 @@
  	DBUG_VOID_RETURN;
  }
  
-@@ -1583,6 +1593,32 @@
+@@ -1427,6 +1437,32 @@
  }
  
  
@@ -429,13 +428,13 @@
  /*********************************************************************//**
  Construct ha_innobase handler. */
  UNIV_INTERN
-@@ -9179,6 +9215,25 @@
+@@ -8940,6 +8976,25 @@
  	statement has ended */
  
  	if (trx->n_mysql_tables_in_use == 0) {
 +#ifdef EXTENDED_SLOWLOG
 +		increment_thd_innodb_stats(thd,
-+					(unsigned long long) trx->id,
++					(unsigned long long) ut_conv_dulint_to_longlong(trx->id),
 +					trx->io_reads,
 +					trx->io_read,
 +					trx->io_reads_wait_timer,
@@ -455,19 +454,19 @@
  
  		trx->mysql_n_tables_locked = 0;
  		prebuilt->used_in_HANDLER = FALSE;
-diff -ruN a/storage/innobase/handler/innodb_patch_info.h b/storage/innobase/handler/innodb_patch_info.h
---- a/storage/innobase/handler/innodb_patch_info.h	2010-12-03 17:36:44.293955189 +0900
-+++ b/storage/innobase/handler/innodb_patch_info.h	2010-12-03 17:42:42.094955866 +0900
-@@ -38,5 +38,6 @@
- {"innodb_recovery_patches","Bugfixes and adjustments about recovery process","","http://www.percona.com/docs/wiki/percona-xtradb"},
+diff -ruN a/storage/innodb_plugin/handler/innodb_patch_info.h b/storage/innodb_plugin/handler/innodb_patch_info.h
+--- a/storage/innodb_plugin/handler/innodb_patch_info.h	2010-08-27 16:30:34.590004526 +0900
++++ b/storage/innodb_plugin/handler/innodb_patch_info.h	2010-08-27 16:30:47.361987777 +0900
+@@ -40,5 +40,6 @@
+ {"innodb_purge_thread","Enable to use purge devoted thread","","http://www.percona.com/docs/wiki/percona-xtradb"},
  {"innodb_admin_command_base","XtraDB specific command interface through i_s","","http://www.percona.com/docs/wiki/percona-xtradb"},
  {"innodb_show_lock_name","Show mutex/lock name instead of crated file/line","","http://www.percona.com/docs/wiki/percona-xtradb"},
 +{"innodb_extend_slow","Extended statistics in slow.log","It is InnoDB-part only. It needs to patch also to mysqld.","http://www.percona.com/docs/wiki/percona-xtradb"},
  {NULL, NULL, NULL, NULL}
  };
-diff -ruN a/storage/innobase/include/buf0rea.h b/storage/innobase/include/buf0rea.h
---- a/storage/innobase/include/buf0rea.h	2010-12-03 15:18:48.891024406 +0900
-+++ b/storage/innobase/include/buf0rea.h	2010-12-03 17:42:42.096026873 +0900
+diff -ruN a/storage/innodb_plugin/include/buf0rea.h b/storage/innodb_plugin/include/buf0rea.h
+--- a/storage/innodb_plugin/include/buf0rea.h	2010-08-27 15:54:18.078987755 +0900
++++ b/storage/innodb_plugin/include/buf0rea.h	2010-08-27 16:30:47.363031394 +0900
 @@ -27,6 +27,7 @@
  #define buf0rea_h
  
@@ -497,10 +496,10 @@
  /********************************************************************//**
  Issues read requests for pages which the ibuf module wants to read in, in
  order to contract the insert buffer tree. Technically, this function is like
-diff -ruN a/storage/innobase/include/fil0fil.h b/storage/innobase/include/fil0fil.h
---- a/storage/innobase/include/fil0fil.h	2010-12-03 15:09:51.290958543 +0900
-+++ b/storage/innobase/include/fil0fil.h	2010-12-03 17:42:42.097027548 +0900
-@@ -611,9 +611,12 @@
+diff -ruN a/storage/innodb_plugin/include/fil0fil.h b/storage/innodb_plugin/include/fil0fil.h
+--- a/storage/innodb_plugin/include/fil0fil.h	2010-08-27 15:52:14.325059269 +0900
++++ b/storage/innodb_plugin/include/fil0fil.h	2010-08-27 16:30:47.365059512 +0900
+@@ -610,9 +610,12 @@
  Reads or writes data. This operation is asynchronous (aio).
  @return DB_SUCCESS, or DB_TABLESPACE_DELETED if we are trying to do
  i/o on a tablespace which does not exist */
@@ -514,7 +513,7 @@
  /*===*/
  	ulint	type,		/*!< in: OS_FILE_READ or OS_FILE_WRITE,
  				ORed to OS_FILE_LOG, if a log i/o
-@@ -638,8 +641,9 @@
+@@ -637,8 +640,9 @@
  	void*	buf,		/*!< in/out: buffer where to store read data
  				or from where to write; in aio this must be
  				appropriately aligned */
@@ -525,9 +524,9 @@
  /**********************************************************************//**
  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
-diff -ruN a/storage/innobase/include/os0file.h b/storage/innobase/include/os0file.h
---- a/storage/innobase/include/os0file.h	2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/include/os0file.h	2010-12-03 17:42:42.100023783 +0900
+diff -ruN a/storage/innodb_plugin/include/os0file.h b/storage/innodb_plugin/include/os0file.h
+--- a/storage/innodb_plugin/include/os0file.h	2010-08-04 02:24:19.000000000 +0900
++++ b/storage/innodb_plugin/include/os0file.h	2010-08-27 16:30:47.366987560 +0900
 @@ -36,6 +36,7 @@
  #define os0file_h
  
@@ -536,63 +535,21 @@
  
  #ifndef __WIN__
  #include <dirent.h>
-@@ -277,13 +278,17 @@
- 	pfs_os_file_close_func(file, __FILE__, __LINE__)
- 
- # define os_aio(type, mode, name, file, buf, offset, offset_high,	\
--		n, message1, message2)					\
-+		n, message1, message2, trx)				\
- 	pfs_os_aio_func(type, mode, name, file, buf, offset,		\
--			offset_high, n, message1, message2,		\
-+			offset_high, n, message1, message2, trx,	\
- 			__FILE__, __LINE__)
- 
- # define os_file_read(file, buf, offset, offset_high, n)		\
--	pfs_os_file_read_func(file, buf, offset, offset_high, n,	\
-+	pfs_os_file_read_func(file, buf, offset, offset_high, n, NULL,	\
-+			      __FILE__, __LINE__)
-+
-+# define os_file_read_trx(file, buf, offset, offset_high, n, trx)	\
-+	pfs_os_file_read_func(file, buf, offset, offset_high, n, trx,	\
- 			      __FILE__, __LINE__)
- 
- # define os_file_read_no_error_handling(file, buf, offset,		\
-@@ -319,12 +324,15 @@
- # define os_file_close(file)	os_file_close_func(file)
- 
- # define os_aio(type, mode, name, file, buf, offset, offset_high,	\
--	       n, message1, message2)					\
-+	       n, message1, message2, trx)				\
- 	os_aio_func(type, mode, name, file, buf, offset, offset_high, n,\
--		    message1, message2)
-+		    message1, message2, trx)
- 
- # define os_file_read(file, buf, offset, offset_high, n)		\
--	os_file_read_func(file, buf, offset, offset_high, n)
-+	os_file_read_func(file, buf, offset, offset_high, n, NULL)
-+
-+# define os_file_read_trx(file, buf, offset, offset_high, n, trx)	\
-+	os_file_read_func(file, buf, offset, offset_high, n, trx)
- 
- # define os_file_read_no_error_handling(file, buf, offset,		\
- 				       offset_high, n)			\
-@@ -690,6 +698,7 @@
- 	ulint		offset_high,/*!< in: most significant 32 bits of
- 				offset */
- 	ulint		n,	/*!< in: number of bytes to read */
-+	trx_t*		trx,
- 	const char*	src_file,/*!< in: file name where func invoked */
- 	ulint		src_line);/*!< in: line where the func invoked */
- 
-@@ -744,6 +753,7 @@
- 				(can be used to identify a completed
- 				aio operation); ignored if mode is
-                                 OS_AIO_SYNC */
-+	trx_t*		trx,
- 	const char*	src_file,/*!< in: file name where func invoked */
- 	ulint		src_line);/*!< in: line where the func invoked */
+@@ -482,9 +483,12 @@
  /*******************************************************************//**
-@@ -885,7 +895,8 @@
+ Requests a synchronous read operation.
+ @return	TRUE if request was successful, FALSE if fail */
++#define os_file_read(file, buf, offset, offset_high, n)         \
++		_os_file_read(file, buf, offset, offset_high, n, NULL)
++
+ UNIV_INTERN
+ ibool
+-os_file_read(
++_os_file_read(
+ /*=========*/
+ 	os_file_t	file,	/*!< in: handle to a file */
+ 	void*		buf,	/*!< in: buffer where to read */
+@@ -492,7 +496,8 @@
  				offset where to read */
  	ulint		offset_high,/*!< in: most significant 32 bits of
  				offset */
@@ -602,7 +559,7 @@
  /*******************************************************************//**
  Rewind file to its start, read at most size - 1 bytes from it to str, and
  NUL-terminate str. All errors are silently ignored. This function is
-@@ -1044,10 +1055,11 @@
+@@ -646,10 +651,11 @@
  				(can be used to identify a completed
  				aio operation); ignored if mode is
  				OS_AIO_SYNC */
@@ -615,46 +572,9 @@
  /************************************************************************//**
  Wakes up all async i/o threads so that they know to exit themselves in
  shutdown. */
-diff -ruN a/storage/innobase/include/os0file.ic b/storage/innobase/include/os0file.ic
---- a/storage/innobase/include/os0file.ic	2010-11-03 07:01:13.000000000 +0900
-+++ b/storage/innobase/include/os0file.ic	2010-12-03 17:42:42.102024458 +0900
-@@ -229,6 +229,7 @@
- 				(can be used to identify a completed
- 				aio operation); ignored if mode is
-                                 OS_AIO_SYNC */
-+	trx_t*		trx,
- 	const char*	src_file,/*!< in: file name where func invoked */
- 	ulint		src_line)/*!< in: line where the func invoked */
- {
-@@ -244,7 +245,7 @@
- 				   src_file, src_line);
- 
- 	result = os_aio_func(type, mode, name, file, buf, offset, offset_high,
--			     n, message1, message2);
-+			     n, message1, message2, trx);
- 
- 	register_pfs_file_io_end(locker, n);
- 
-@@ -268,6 +269,7 @@
- 	ulint		offset_high,/*!< in: most significant 32 bits of
- 				offset */
- 	ulint		n,	/*!< in: number of bytes to read */
-+	trx_t*		trx,
- 	const char*	src_file,/*!< in: file name where func invoked */
- 	ulint		src_line)/*!< in: line where the func invoked */
- {
-@@ -278,7 +280,7 @@
- 	register_pfs_file_io_begin(&state, locker, file, n, PSI_FILE_READ,
- 				   src_file, src_line);
- 
--	result = os_file_read_func(file, buf, offset, offset_high, n);
-+	result = os_file_read_func(file, buf, offset, offset_high, n, trx);
- 
- 	register_pfs_file_io_end(locker, n);
- 
-diff -ruN a/storage/innobase/include/srv0srv.h b/storage/innobase/include/srv0srv.h
---- a/storage/innobase/include/srv0srv.h	2010-12-03 17:32:15.634987408 +0900
-+++ b/storage/innobase/include/srv0srv.h	2010-12-03 17:42:42.104028644 +0900
+diff -ruN a/storage/innodb_plugin/include/srv0srv.h b/storage/innodb_plugin/include/srv0srv.h
+--- a/storage/innodb_plugin/include/srv0srv.h	2010-08-27 16:27:30.225055856 +0900
++++ b/storage/innodb_plugin/include/srv0srv.h	2010-08-27 16:30:47.367988259 +0900
 @@ -62,6 +62,9 @@
  #define SRV_AUTO_EXTEND_INCREMENT	\
  	(srv_auto_extend_increment * ((1024 * 1024) / UNIV_PAGE_SIZE))
@@ -665,10 +585,10 @@
  /* This is set to TRUE if the MySQL user has set it in MySQL */
  extern ibool	srv_lower_case_table_names;
  
-diff -ruN a/storage/innobase/include/trx0trx.h b/storage/innobase/include/trx0trx.h
---- a/storage/innobase/include/trx0trx.h	2010-12-03 15:41:52.049372966 +0900
-+++ b/storage/innobase/include/trx0trx.h	2010-12-03 17:42:42.107024532 +0900
-@@ -728,6 +728,17 @@
+diff -ruN a/storage/innodb_plugin/include/trx0trx.h b/storage/innodb_plugin/include/trx0trx.h
+--- a/storage/innodb_plugin/include/trx0trx.h	2010-08-27 16:08:45.301058614 +0900
++++ b/storage/innodb_plugin/include/trx0trx.h	2010-08-27 16:30:47.369989369 +0900
+@@ -738,6 +738,17 @@
  	/*------------------------------*/
  	char detailed_error[256];	/*!< detailed error message for last
  					error, or empty. */
@@ -686,10 +606,10 @@
  };
  
  #define TRX_MAX_N_THREADS	32	/* maximum number of
-diff -ruN a/storage/innobase/lock/lock0lock.c b/storage/innobase/lock/lock0lock.c
---- a/storage/innobase/lock/lock0lock.c	2010-12-03 15:09:51.297986437 +0900
-+++ b/storage/innobase/lock/lock0lock.c	2010-12-03 17:42:42.111024587 +0900
-@@ -1755,6 +1755,8 @@
+diff -ruN a/storage/innodb_plugin/lock/lock0lock.c b/storage/innodb_plugin/lock/lock0lock.c
+--- a/storage/innodb_plugin/lock/lock0lock.c	2010-08-27 15:52:14.332058513 +0900
++++ b/storage/innodb_plugin/lock/lock0lock.c	2010-08-27 16:30:47.374058285 +0900
+@@ -1757,6 +1757,8 @@
  {
  	lock_t*	lock;
  	trx_t*	trx;
@@ -698,7 +618,7 @@
  
  	ut_ad(mutex_own(&kernel_mutex));
  
-@@ -1813,6 +1815,10 @@
+@@ -1815,6 +1817,10 @@
  	trx->que_state = TRX_QUE_LOCK_WAIT;
  	trx->was_chosen_as_deadlock_victim = FALSE;
  	trx->wait_started = time(NULL);
@@ -709,7 +629,7 @@
  
  	ut_a(que_thr_stop(thr));
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_extend_slow.patch?r1=1.1&r2=1.2&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-innodb_split_buf_pool_mutex.patch?r1=1.2&r2=1.3&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-microsec_process.patch?r1=1.2&r2=1.3&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql-userstat.patch?r1=1.1&r2=1.2&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql.spec?r1=1.496.2.1&r2=1.496.2.2&f=u



More information about the pld-cvs-commit mailing list