Author: arekm                        Date: Wed Dec 15 22:22:57 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- new perfona url, new patch names (but still have to wait for the patches to 
be updated to 5.5.8)

---- Files affected:
packages/mysql:
   mysql.spec (1.502 -> 1.503) , mysql-innodb_extend_slow.patch (NONE -> 1.1)  
(NEW), mysql-innodb_split_buf_pool_mutex.patch (1.1 -> 1.2) , 
mysql-microsec_process.patch (1.1 -> 1.2) , mysql-userstat.patch (NONE -> 1.1)  
(NEW)

---- Diffs:

================================================================
Index: packages/mysql/mysql.spec
diff -u packages/mysql/mysql.spec:1.502 packages/mysql/mysql.spec:1.503
--- packages/mysql/mysql.spec:1.502     Wed Dec 15 23:11:28 2010
+++ packages/mysql/mysql.spec   Wed Dec 15 23:22:51 2010
@@ -71,12 +71,11 @@
 Patch15:       plugin-avoid-version.patch
 Patch16:       %{name}-fix-dummy-thread-race-condition.patch
 Patch18:       %{name}-sphinx.patch
-# <percona patches, http://www.percona.com/percona-lab.html>
-Patch100:      %{name}-userstats.patch
-Patch101:      %{name}-microslow.patch
-Patch102:      %{name}-acc-pslist.patch
-Patch103:      %{name}-split_buf_pool_mutex_fixed_optimistic_safe.patch
-Patch104:      %{name}-innodb_rw_lock.patch
+# <percona patches, 
http://bazaar.launchpad.net/~percona-dev/percona-server/5.5.7/files>
+Patch100:      %{name}-userstat.patch
+Patch101:      %{name}-innodb_extend_slow.patch
+Patch102:      %{name}-microsec_process.patch
+Patch103:      %{name}-innodb_split_buf_pool_mutex.patch
 # </percona>
 URL:           
http://www.mysql.com/products/database/mysql/community_edition.html
 BuildRequires: bison
@@ -526,8 +525,6 @@
 #%patch102 -p1
 # CHECK ME
 #%patch103 -p1
-# CHECK ME
-#%patch104 -p1
 # </percona>
 
 %build
@@ -1097,6 +1094,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.503  2010/12/15 22:22:51  arekm
+- new perfona url, new patch names (but still have to wait for the patches to 
be updated to 5.5.8)
+
 Revision 1.502  2010/12/15 22:11:28  arekm
 - fix so symlinks and update system users patch
 

================================================================
Index: packages/mysql/mysql-innodb_extend_slow.patch
diff -u /dev/null packages/mysql/mysql-innodb_extend_slow.patch:1.1
--- /dev/null   Wed Dec 15 23:22:57 2010
+++ packages/mysql/mysql-innodb_extend_slow.patch       Wed Dec 15 23:22:51 2010
@@ -0,0 +1,1044 @@
+# name       : innodb_extend_slow.patch
+# introduced : 11 or before
+# maintainer : Yasufumi
+#
+#!!! 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
+@@ -51,6 +51,40 @@
+ #include "dict0dict.h"
+ #include "log0recv.h"
+ #include "page0zip.h"
++#include "trx0trx.h"
++
++/* prototypes for new functions added to ha_innodb.cc */
++trx_t* innobase_get_trx();
++
++inline void _increment_page_get_statistics(buf_block_t* block, trx_t* trx)
++{
++      ulint           block_hash;
++      ulint           block_hash_byte;
++      byte            block_hash_offset;
++
++      ut_ad(block);
++
++      if (!innobase_get_slow_log() || !trx || !trx->take_stats)
++              return;
++
++      if (!trx->distinct_page_access_hash) {
++              trx->distinct_page_access_hash = mem_alloc(DPAH_SIZE);
++              memset(trx->distinct_page_access_hash, 0, DPAH_SIZE);
++      }
++
++      block_hash = ut_hash_ulint((block->page.space << 20) + 
block->page.space +
++                                      block->page.offset, DPAH_SIZE << 3);
++      block_hash_byte = block_hash >> 3;
++      block_hash_offset = (byte) block_hash & 0x07;
++      if (block_hash_byte < 0 || block_hash_byte >= DPAH_SIZE)
++              fprintf(stderr, "!!! block_hash_byte = %lu  block_hash_offset = 
%d !!!\n", block_hash_byte, block_hash_offset);
++      if (block_hash_offset < 0 || block_hash_offset > 7)
++              fprintf(stderr, "!!! block_hash_byte = %lu  block_hash_offset = 
%d !!!\n", block_hash_byte, block_hash_offset);
++      if ((trx->distinct_page_access_hash[block_hash_byte] & ((byte) 0x01 << 
block_hash_offset)) == 0)
++              trx->distinct_page_access++;
++      trx->distinct_page_access_hash[block_hash_byte] |= (byte) 0x01 << 
block_hash_offset;
++      return;
++}
+ 
+ /*
+               IMPLEMENTATION OF THE BUFFER POOL
+@@ -2399,11 +2433,19 @@
+       mutex_t*        block_mutex;
+       ibool           must_read;
+       unsigned        access_time;
++      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);
+ 
+ #ifndef UNIV_LOG_DEBUG
+       ut_ad(!ibuf_inside());
+ #endif
++      if (innobase_get_slow_log()) {
++              trx = innobase_get_trx();
++      }
+       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);
+ 
+-              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 @@
+               /* Let us wait until the read operation
+               completes */
+ 
++              if (innobase_get_slow_log() && trx && trx->take_stats)
++              {
++                      ut_usectime(&sec, &ms);
++                      start_time = (ib_uint64_t)sec * 1000000 + ms;
++              } else {
++                      start_time = 0;
++              }
+               for (;;) {
+                       enum buf_io_fix io_fix;
+ 
+@@ -2513,6 +2562,12 @@
+                               break;
+                       }
+               }
++              if (innobase_get_slow_log() && trx && trx->take_stats && 
start_time)
++              {
++                      ut_usectime(&sec, &ms);
++                      finish_time = (ib_uint64_t)sec * 1000000 + ms;
++                      trx->io_reads_wait_timer += (ulint)(finish_time - 
start_time);
++              }
+       }
+ 
+ #ifdef UNIV_IBUF_COUNT_DEBUG
+@@ -2825,6 +2880,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);
+ 
+       ut_ad(mtr);
+@@ -2842,6 +2902,9 @@
+ #ifndef UNIV_LOG_DEBUG
+       ut_ad(!ibuf_inside() || ibuf_page(space, zip_size, offset, NULL));
+ #endif
++      if (innobase_get_slow_log()) {
++              trx = innobase_get_trx();
++      }
+       buf_pool->stat.n_page_gets++;
+       fold = buf_page_address_fold(space, offset);
+ loop:
+@@ -2915,7 +2978,7 @@
+                       return(NULL);
+               }
+ 
+-              if (buf_read_page(space, zip_size, offset)) {
++              if (buf_read_page(space, zip_size, offset, trx)) {
+                       retries = 0;
+               } else if (retries < BUF_PAGE_READ_MAX_RETRIES) {
+                       ++retries;
+@@ -3178,6 +3241,13 @@
+                       /* Let us wait until the read operation
+                       completes */
+ 
++                      if (innobase_get_slow_log() && trx && trx->take_stats)
++                      {
++                              ut_usectime(&sec, &ms);
++                              start_time = (ib_uint64_t)sec * 1000000 + ms;
++                      } else {
++                              start_time = 0;
++                      }
+                       for (;;) {
+                               enum buf_io_fix io_fix;
+ 
+@@ -3192,6 +3262,12 @@
+                                       break;
+                               }
+                       }
++                      if (innobase_get_slow_log() && trx && trx->take_stats 
&& start_time)
++                      {
++                              ut_usectime(&sec, &ms);
++                              finish_time = (ib_uint64_t)sec * 1000000 + ms;
++                              trx->io_reads_wait_timer += (ulint)(finish_time 
- start_time);
++                      }
+               }
+ 
+               fix_type = MTR_MEMO_BUF_FIX;
+@@ -3217,13 +3293,17 @@
+               /* In the case of a first access, try to apply linear
+               read-ahead */
+ 
+-              buf_read_ahead_linear(space, zip_size, offset);
++              buf_read_ahead_linear(space, zip_size, offset, trx);
+       }
+ 
+ #ifdef UNIV_IBUF_COUNT_DEBUG
+       ut_a(ibuf_count_get(buf_block_get_space(block),
+                           buf_block_get_page_no(block)) == 0);
+ #endif
++      if (innobase_get_slow_log()) {
++              _increment_page_get_statistics(block, trx);
++      }
++
+       return(block);
+ }
+ 
+@@ -3247,6 +3327,7 @@
+       unsigned        access_time;
+       ibool           success;
+       ulint           fix_type;
++      trx_t*          trx = NULL;
+ 
+       ut_ad(block);
+       ut_ad(mtr);
+@@ -3324,13 +3405,17 @@
+ #ifdef UNIV_DEBUG_FILE_ACCESSES
+       ut_a(block->page.file_page_was_freed == FALSE);
+ #endif
++      if (innobase_get_slow_log()) {
++              trx = innobase_get_trx();
++      }
++
+       if (UNIV_UNLIKELY(!access_time)) {
+               /* In the case of a first access, try to apply linear
+               read-ahead */
+ 
+               buf_read_ahead_linear(buf_block_get_space(block),
+                                     buf_block_get_zip_size(block),
+-                                    buf_block_get_page_no(block));
++                                    buf_block_get_page_no(block), trx);
+       }
+ 
+ #ifdef UNIV_IBUF_COUNT_DEBUG
+@@ -3340,6 +3425,9 @@
+       buf_pool = buf_pool_from_block(block);
+       buf_pool->stat.n_page_gets++;
+ 
++      if (innobase_get_slow_log()) {
++              _increment_page_get_statistics(block, trx);
++      }
+       return(TRUE);
+ }
+ 
+@@ -3362,6 +3450,7 @@
+       buf_pool_t*     buf_pool;
+       ibool           success;
+       ulint           fix_type;
++      trx_t*          trx = NULL;
+ 
+       ut_ad(mtr);
+       ut_ad(mtr->state == MTR_ACTIVE);
+@@ -3448,6 +3537,11 @@
+ #endif
+       buf_pool->stat.n_page_gets++;
+ 
++      if (innobase_get_slow_log()) {
++              trx = innobase_get_trx();
++              _increment_page_get_statistics(block, trx);
++      }
++
+       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 @@
+                       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 */
+-      ulint   offset) /*!< in: page number */
++      ulint   offset, /*!< in: page number */
++      trx_t*  trx)
+ {
+       buf_page_t*     bpage;
+       ulint           wake_later;
+@@ -179,15 +180,15 @@
+ 
+       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,
+                             sync, space, zip_size, offset, 0, zip_size,
+-                            bpage->zip.data, bpage);
++                            bpage->zip.data, bpage, trx);
+       } else {
+               ut_a(buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE);
+ 
+-              *err = fil_io(OS_FILE_READ | wake_later,
++              *err = _fil_io(OS_FILE_READ | wake_later,
+                             sync, space, 0, offset, 0, UNIV_PAGE_SIZE,
+-                            ((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 @@
+ /*==========*/
+       ulint   space,  /*!< in: space id */
+       ulint   zip_size,/*!< in: compressed page size in bytes, or 0 */
+-      ulint   offset) /*!< in: page number */
++      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 @@
+ 
+       count = buf_read_page_low(&err, TRUE, BUF_READ_ANY_PAGE, space,
+                                 zip_size, FALSE,
+-                                tablespace_version, offset);
++                                tablespace_version, offset, trx);
+       srv_buf_pool_reads += count;
+       if (err == DB_TABLESPACE_DELETED) {
+               ut_print_timestamp(stderr);
+@@ -278,8 +280,9 @@
+ /*==================*/
+       ulint   space,  /*!< in: space id */
+       ulint   zip_size,/*!< in: compressed page size in bytes, or 0 */
+-      ulint   offset) /*!< in: page number of a page; NOTE: the current thread
++      ulint   offset, /*!< in: page number of a page; NOTE: the current thread
+                       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 @@
+                       count += buf_read_page_low(
+                               &err, FALSE,
+                               ibuf_mode | OS_AIO_SIMULATED_WAKE_LATER,
+-                              space, zip_size, FALSE, tablespace_version, i);
++                              space, zip_size, FALSE, tablespace_version, i, 
trx);
+                       if (err == DB_TABLESPACE_DELETED) {
+                               ut_print_timestamp(stderr);
+                               fprintf(stderr,
+@@ -594,7 +597,7 @@
+               buf_read_page_low(&err, sync && (i + 1 == n_stored),
+                                 BUF_READ_ANY_PAGE, space_ids[i],
+                                 zip_size, TRUE, space_versions[i],
+-                                page_nos[i]);
++                                page_nos[i], NULL);
+ 
+               if (UNIV_UNLIKELY(err == DB_TABLESPACE_DELETED)) {
+ tablespace_deleted:
+@@ -736,12 +739,12 @@
+               if ((i + 1 == n_stored) && sync) {
+                       buf_read_page_low(&err, TRUE, BUF_READ_ANY_PAGE, space,
+                                         zip_size, TRUE, tablespace_version,
+-                                        page_nos[i]);
++                                        page_nos[i], NULL);
+               } else {
+                       buf_read_page_low(&err, FALSE, BUF_READ_ANY_PAGE
+                                         | OS_AIO_SIMULATED_WAKE_LATER,
+                                         space, zip_size, TRUE,
+-                                        tablespace_version, page_nos[i]);
++                                        tablespace_version, page_nos[i], 
NULL);
+               }
+       }
+ 
+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 @@
+                                node->name, node->handle, buf,
+                                offset_low, offset_high,
+                                page_size * n_pages,
+-                               NULL, NULL);
++                               NULL, NULL, NULL);
+ #endif
+               if (success) {
+                       node->size += n_pages;
+@@ -4676,7 +4676,7 @@
+ i/o on a tablespace which does not exist */
+ UNIV_INTERN
+ ulint
+-fil_io(
++_fil_io(
+ /*===*/
+       ulint   type,           /*!< in: OS_FILE_READ or OS_FILE_WRITE,
+                               ORed to OS_FILE_LOG, if a log i/o
+@@ -4701,8 +4701,9 @@
+       void*   buf,            /*!< in/out: buffer where to store read data
+                               or from where to write; in aio this must be
+                               appropriately aligned */
+-      void*   message)        /*!< in: message for aio handler if non-sync
++      void*   message,        /*!< in: message for aio handler if non-sync
+                               aio used, else ignored */
++      trx_t*  trx)
+ {
+       ulint           mode;
+       fil_space_t*    space;
+@@ -4872,7 +4873,7 @@
+ #else
+       /* Queue the aio request */
+       ret = os_aio(type, mode | wake_later, node->name, node->handle, buf,
+-                   offset_low, offset_high, len, node, message);
++                   offset_low, offset_high, len, node, message, trx);
+ #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 @@
+       trx->check_unique_secondary = !thd_test_options(
+               thd, OPTION_RELAXED_UNIQUE_CHECKS);
+ 
++#ifdef EXTENDED_SLOWLOG
++      if (thd_log_slow_verbosity(thd) & SLOG_V_INNODB) {
++              trx->take_stats = TRUE;
++      } else {
++              trx->take_stats = FALSE;
++      }
++#else
++      trx->take_stats = FALSE;
++#endif
++
+       DBUG_VOID_RETURN;
+ }
+ 
+@@ -1583,6 +1593,32 @@
+ }
+ 
+ 
++/*************************************************************************
++Gets current trx. */
++extern "C"
++trx_t*
++innobase_get_trx()
++{
++      THD *thd=current_thd;
++      if (likely(thd != 0)) {
++              trx_t*& trx = thd_to_trx(thd);
++              return(trx);
++      } else {
++              return(NULL);
++      }
++}
++
++extern "C"
++ibool
++innobase_get_slow_log()
++{
++#ifdef EXTENDED_SLOWLOG
++      return((ibool) thd_opt_slow_log());
++#else
++      return(FALSE);
++#endif
++}
++
+ /*********************************************************************//**
+ Construct ha_innobase handler. */
+ UNIV_INTERN
+@@ -9179,6 +9215,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,
++                                      trx->io_reads,
++                                      trx->io_read,
++                                      trx->io_reads_wait_timer,
++                                      trx->lock_que_wait_timer,
++                                      trx->innodb_que_wait_timer,
++                                      trx->distinct_page_access);
++
++              trx->io_reads = 0;
++              trx->io_read = 0;
++              trx->io_reads_wait_timer = 0;
++              trx->lock_que_wait_timer = 0;
++              trx->innodb_que_wait_timer = 0;
++              trx->distinct_page_access = 0;
++              if (trx->distinct_page_access_hash)
++                      memset(trx->distinct_page_access_hash, 0, DPAH_SIZE);
++#endif
+ 
+               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"},
+ {"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
+@@ -27,6 +27,7 @@
+ #define buf0rea_h
+ 
+ #include "univ.i"
++#include "trx0types.h"
+ #include "buf0types.h"
+ 
+ /********************************************************************//**
+@@ -41,7 +42,8 @@
+ /*==========*/
+       ulint   space,  /*!< in: space id */
+       ulint   zip_size,/*!< in: compressed page size in bytes, or 0 */
+-      ulint   offset);/*!< in: page number */
++      ulint   offset, /*!< in: page number */
++      trx_t*  trx);
+ /********************************************************************//**
+ Applies linear read-ahead if in the buf_pool the page is a border page of
+ a linear read-ahead area and all the pages in the area have been accessed.
+@@ -72,8 +74,9 @@
+ /*==================*/
+       ulint   space,  /*!< in: space id */
+       ulint   zip_size,/*!< in: compressed page size in bytes, or 0 */
+-      ulint   offset);/*!< in: page number of a page; NOTE: the current thread
++      ulint   offset, /*!< in: page number of a page; NOTE: the current thread
+                       must want access to this page (see NOTE 3 above) */
++      trx_t*  trx);
+ /********************************************************************//**
+ 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 @@
+ 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 */
++#define fil_io(type, sync, space_id, zip_size, block_offset, byte_offset, 
len, buf, message) \
++      _fil_io(type, sync, space_id, zip_size, block_offset, byte_offset, len, 
buf, message, NULL)
++
+ UNIV_INTERN
+ ulint
+-fil_io(
++_fil_io(
+ /*===*/
+       ulint   type,           /*!< in: OS_FILE_READ or OS_FILE_WRITE,
+                               ORed to OS_FILE_LOG, if a log i/o
+@@ -638,8 +641,9 @@
+       void*   buf,            /*!< in/out: buffer where to store read data
+                               or from where to write; in aio this must be
+                               appropriately aligned */
+-      void*   message);       /*!< in: message for aio handler if non-sync
++      void*   message,        /*!< in: message for aio handler if non-sync
+                               aio used, else ignored */
++      trx_t*  trx);
+ /**********************************************************************//**
+ 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
+@@ -36,6 +36,7 @@
+ #define os0file_h
+ 
+ #include "univ.i"
++#include "trx0types.h"
+ 
+ #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__)
+ 
<<Diff was trimmed, longer than 597 lines>>

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

_______________________________________________
pld-cvs-commit mailing list
pld-cvs-commit@lists.pld-linux.org
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to