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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to