Author: arekm                        Date: Thu Mar 12 21:49:13 2009 GMT
Module: SOURCES                       Tag: MYSQL_5_0
---- Log message:
- perfona patches for .77

---- Files affected:
SOURCES:
   mysql-innodb_io_pattern.patch (1.1.2.1 -> 1.1.2.2) , 
mysql-innodb_locks_held.patch (1.1.2.2 -> 1.1.2.3) , mysql-innodb_rw_lock.patch 
(1.1.2.1 -> 1.1.2.2) , mysql-microslow_innodb.patch (1.1.2.5 -> 1.1.2.6) , 
mysql-split_buf_pool_mutex_fixed_optimistic_safe.patch (1.1.2.2 -> 1.1.2.3) , 
mysql-userstatv2.patch (1.1.2.5 -> 1.1.2.6) 

---- Diffs:

================================================================
Index: SOURCES/mysql-innodb_io_pattern.patch
diff -u SOURCES/mysql-innodb_io_pattern.patch:1.1.2.1 
SOURCES/mysql-innodb_io_pattern.patch:1.1.2.2
--- SOURCES/mysql-innodb_io_pattern.patch:1.1.2.1       Fri Jan  9 12:04:51 2009
+++ SOURCES/mysql-innodb_io_pattern.patch       Thu Mar 12 22:49:05 2009
@@ -1,6 +1,6 @@
-diff -r 2bbfde0e0e70 include/mysql_com.h
---- a/include/mysql_com.h      Mon Dec 22 00:33:11 2008 -0800
-+++ b/include/mysql_com.h      Mon Dec 22 00:33:48 2008 -0800
+diff -r 5060df9888d7 include/mysql_com.h
+--- a/include/mysql_com.h      Tue Feb 17 22:33:54 2009 -0800
++++ b/include/mysql_com.h      Tue Feb 17 22:33:58 2009 -0800
 @@ -121,6 +121,9 @@
  #define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */
  #define REFRESH_DES_KEY_FILE  0x40000L
@@ -11,9 +11,9 @@
  
  #define CLIENT_LONG_PASSWORD  1       /* new more secure passwords */
  #define CLIENT_FOUND_ROWS     2       /* Found instead of affected rows */
-diff -r 2bbfde0e0e70 innobase/buf/buf0buf.c
---- a/innobase/buf/buf0buf.c   Mon Dec 22 00:33:11 2008 -0800
-+++ b/innobase/buf/buf0buf.c   Mon Dec 22 00:33:48 2008 -0800
+diff -r 5060df9888d7 innobase/buf/buf0buf.c
+--- a/innobase/buf/buf0buf.c   Tue Feb 17 22:33:54 2009 -0800
++++ b/innobase/buf/buf0buf.c   Tue Feb 17 22:33:58 2009 -0800
 @@ -653,6 +653,9 @@
        }
  
@@ -147,9 +147,9 @@
 +       }
 +       mutex_exit(&(buf_pool->mutex));
 +}
-diff -r 2bbfde0e0e70 innobase/include/buf0buf.h
---- a/innobase/include/buf0buf.h       Mon Dec 22 00:33:11 2008 -0800
-+++ b/innobase/include/buf0buf.h       Mon Dec 22 00:33:48 2008 -0800
+diff -r 5060df9888d7 innobase/include/buf0buf.h
+--- a/innobase/include/buf0buf.h       Tue Feb 17 22:33:54 2009 -0800
++++ b/innobase/include/buf0buf.h       Tue Feb 17 22:33:58 2009 -0800
 @@ -709,6 +709,18 @@
  void buf_pool_dump(void);
  buf_block_t* buf_pool_get_nth_block_no_inline(buf_pool_t* pool, ulint i);  
@@ -195,9 +195,9 @@
  /* States of a control block */
  #define       BUF_BLOCK_NOT_USED      211     /* is in the free list */
  #define BUF_BLOCK_READY_FOR_USE       212     /* when buf_get_free_block 
returns
-diff -r 2bbfde0e0e70 innobase/include/buf0types.h
---- a/innobase/include/buf0types.h     Mon Dec 22 00:33:11 2008 -0800
-+++ b/innobase/include/buf0types.h     Mon Dec 22 00:33:48 2008 -0800
+diff -r 5060df9888d7 innobase/include/buf0types.h
+--- a/innobase/include/buf0types.h     Tue Feb 17 22:33:54 2009 -0800
++++ b/innobase/include/buf0types.h     Tue Feb 17 22:33:58 2009 -0800
 @@ -12,6 +12,8 @@
  typedef       struct buf_block_struct         buf_block_t;
  typedef       struct buf_pool_struct          buf_pool_t;
@@ -207,12 +207,12 @@
  /* The 'type' used of a buffer frame */
  typedef       byte    buf_frame_t;
  
-diff -r 2bbfde0e0e70 innobase/include/srv0srv.h
---- a/innobase/include/srv0srv.h       Mon Dec 22 00:33:11 2008 -0800
-+++ b/innobase/include/srv0srv.h       Mon Dec 22 00:33:48 2008 -0800
-@@ -141,6 +141,11 @@
- extern ulint  srv_io_capacity;
- extern ulint  srv_read_ahead;
+diff -r 5060df9888d7 innobase/include/srv0srv.h
+--- a/innobase/include/srv0srv.h       Tue Feb 17 22:33:54 2009 -0800
++++ b/innobase/include/srv0srv.h       Tue Feb 17 22:33:58 2009 -0800
+@@ -145,6 +145,11 @@
+ extern ulint  srv_flush_neighbor_pages;
+ extern uint   srv_read_ahead;
  extern ulint  srv_adaptive_checkpoint;
 +
 +extern volatile ibool srv_io_pattern;
@@ -222,12 +222,12 @@
  /*-------------------------------------------*/
  
  extern ulint  srv_n_rows_inserted;
-diff -r 2bbfde0e0e70 innobase/srv/srv0srv.c
---- a/innobase/srv/srv0srv.c   Mon Dec 22 00:33:11 2008 -0800
-+++ b/innobase/srv/srv0srv.c   Mon Dec 22 00:33:48 2008 -0800
-@@ -337,6 +337,11 @@
+diff -r 5060df9888d7 innobase/srv/srv0srv.c
+--- a/innobase/srv/srv0srv.c   Tue Feb 17 22:33:54 2009 -0800
++++ b/innobase/srv/srv0srv.c   Tue Feb 17 22:33:58 2009 -0800
+@@ -344,6 +344,11 @@
  
- ulint srv_read_ahead = 3; /* 1: random  2: linear  3: Both */
+ uint  srv_read_ahead = 3; /* 1: random  2: linear  3: Both */
  ulint srv_adaptive_checkpoint = 0; /* 0:disable 1:enable */
 +
 +volatile ibool srv_io_pattern = FALSE;
@@ -237,9 +237,9 @@
  /*-------------------------------------------*/
  ulong srv_n_spin_wait_rounds  = 20;
  ulong srv_n_free_tickets_to_enter = 500;
-diff -r 2bbfde0e0e70 mysql-test/r/information_schema.result
---- a/mysql-test/r/information_schema.result   Mon Dec 22 00:33:11 2008 -0800
-+++ b/mysql-test/r/information_schema.result   Mon Dec 22 00:33:48 2008 -0800
+diff -r 5060df9888d7 mysql-test/r/information_schema.result
+--- a/mysql-test/r/information_schema.result   Tue Feb 17 22:33:54 2009 -0800
++++ b/mysql-test/r/information_schema.result   Tue Feb 17 22:33:58 2009 -0800
 @@ -59,6 +59,7 @@
  USER_PRIVILEGES
  USER_STATISTICS
@@ -296,9 +296,9 @@
  KEY_COLUMN_USAGE      information_schema.KEY_COLUMN_USAGE     1
  PROCESSLIST   information_schema.PROCESSLIST  1
  PROFILING     information_schema.PROFILING    1
-diff -r 2bbfde0e0e70 mysql-test/r/information_schema_db.result
---- a/mysql-test/r/information_schema_db.result        Mon Dec 22 00:33:11 
2008 -0800
-+++ b/mysql-test/r/information_schema_db.result        Mon Dec 22 00:33:48 
2008 -0800
+diff -r 5060df9888d7 mysql-test/r/information_schema_db.result
+--- a/mysql-test/r/information_schema_db.result        Tue Feb 17 22:33:54 
2009 -0800
++++ b/mysql-test/r/information_schema_db.result        Tue Feb 17 22:33:58 
2009 -0800
 @@ -28,6 +28,7 @@
  USER_PRIVILEGES
  USER_STATISTICS
@@ -307,9 +307,9 @@
  show tables from INFORMATION_SCHEMA like 'T%';
  Tables_in_information_schema (T%)
  TABLES
-diff -r 2bbfde0e0e70 mysql-test/r/mysqlshow.result
---- a/mysql-test/r/mysqlshow.result    Mon Dec 22 00:33:11 2008 -0800
-+++ b/mysql-test/r/mysqlshow.result    Mon Dec 22 00:33:48 2008 -0800
+diff -r 5060df9888d7 mysql-test/r/mysqlshow.result
+--- a/mysql-test/r/mysqlshow.result    Tue Feb 17 22:33:54 2009 -0800
++++ b/mysql-test/r/mysqlshow.result    Tue Feb 17 22:33:58 2009 -0800
 @@ -102,6 +102,7 @@
  | USER_PRIVILEGES                       |
  | USER_STATISTICS                       |
@@ -326,9 +326,9 @@
  +---------------------------------------+
  Wildcard: inf_rmation_schema
  +--------------------+
-diff -r 2bbfde0e0e70 patch_info/innodb_io_pattern.info
+diff -r 5060df9888d7 patch_info/innodb_io_pattern.info
 --- /dev/null  Thu Jan 01 00:00:00 1970 +0000
-+++ b/patch_info/innodb_io_pattern.info        Mon Dec 22 00:33:48 2008 -0800
++++ b/patch_info/innodb_io_pattern.info        Tue Feb 17 22:33:58 2009 -0800
 @@ -0,0 +1,8 @@
 +File=innodb_io_pattern.patch
 +Name=Information schema table of InnoDB IO counts for each datafile pages
@@ -338,9 +338,9 @@
 +Comment=INFORMATION_SCHEMA.INNODB_IO_PATTERN
 +2008-12-01
 +YK: fix for mysql-test
-diff -r 2bbfde0e0e70 sql/ha_innodb.cc
---- a/sql/ha_innodb.cc Mon Dec 22 00:33:11 2008 -0800
-+++ b/sql/ha_innodb.cc Mon Dec 22 00:33:48 2008 -0800
+diff -r 5060df9888d7 sql/ha_innodb.cc
+--- a/sql/ha_innodb.cc Tue Feb 17 22:33:54 2009 -0800
++++ b/sql/ha_innodb.cc Tue Feb 17 22:33:58 2009 -0800
 @@ -1569,6 +1569,8 @@
          pthread_cond_init(&commit_cond, NULL);
        innodb_inited= 1;
@@ -350,7 +350,7 @@
        /* If this is a replication slave and we needed to do a crash recovery,
        set the master binlog position to what InnoDB internally knew about
        how far we got transactions durable inside InnoDB. There is a
-@@ -6527,6 +6529,28 @@
+@@ -6535,6 +6537,28 @@
  }
  
  /****************************************************************************
@@ -379,10 +379,10 @@
  Implements the SHOW INNODB STATUS command. Sends the output of the InnoDB
  Monitor to the client. */
  
-diff -r 2bbfde0e0e70 sql/ha_innodb.h
---- a/sql/ha_innodb.h  Mon Dec 22 00:33:11 2008 -0800
-+++ b/sql/ha_innodb.h  Mon Dec 22 00:33:48 2008 -0800
-@@ -240,6 +240,9 @@
+diff -r 5060df9888d7 sql/ha_innodb.h
+--- a/sql/ha_innodb.h  Tue Feb 17 22:33:54 2009 -0800
++++ b/sql/ha_innodb.h  Tue Feb 17 22:33:58 2009 -0800
+@@ -244,6 +244,9 @@
  extern ulong srv_adaptive_checkpoint;
  extern ulong srv_show_locks_held;
  extern ulong srv_show_verbose_locks;
@@ -392,7 +392,7 @@
  }
  
  bool innobase_init(void);
-@@ -266,6 +269,9 @@
+@@ -270,6 +273,9 @@
  bool innodb_I_S_buffer_pool_content(THD* thd, TABLE_LIST *tables);
  bool innodb_mutex_show_status(THD* thd);
  void innodb_export_status(void);
@@ -402,9 +402,9 @@
  
  void innobase_release_temporary_latches(THD *thd);
  
-diff -r 2bbfde0e0e70 sql/lex.h
---- a/sql/lex.h        Mon Dec 22 00:33:11 2008 -0800
-+++ b/sql/lex.h        Mon Dec 22 00:33:48 2008 -0800
+diff -r 5060df9888d7 sql/lex.h
+--- a/sql/lex.h        Tue Feb 17 22:33:54 2009 -0800
++++ b/sql/lex.h        Tue Feb 17 22:33:58 2009 -0800
 @@ -244,6 +244,7 @@
    { "INNER",          SYM(INNER_SYM)},
    { "INNOBASE",               SYM(INNOBASE_SYM)},
@@ -413,10 +413,10 @@
    { "INOUT",            SYM(INOUT_SYM)},
    { "INSENSITIVE",      SYM(INSENSITIVE_SYM)},
    { "INSERT",         SYM(INSERT)},
-diff -r 2bbfde0e0e70 sql/mysqld.cc
---- a/sql/mysqld.cc    Mon Dec 22 00:33:11 2008 -0800
-+++ b/sql/mysqld.cc    Mon Dec 22 00:33:48 2008 -0800
-@@ -4983,6 +4983,9 @@
+diff -r 5060df9888d7 sql/mysqld.cc
+--- a/sql/mysqld.cc    Tue Feb 17 22:33:54 2009 -0800
++++ b/sql/mysqld.cc    Tue Feb 17 22:33:58 2009 -0800
+@@ -5026,6 +5026,9 @@
    OPT_INNODB_SYNC_SPIN_LOOPS,
    OPT_INNODB_CONCURRENCY_TICKETS,
    OPT_INNODB_THREAD_SLEEP_DELAY,
@@ -426,7 +426,7 @@
    OPT_BDB_CACHE_SIZE,
    OPT_BDB_LOG_BUFFER_SIZE,
    OPT_BDB_MAX_LOCK,
-@@ -5382,6 +5385,18 @@
+@@ -5445,6 +5448,18 @@
     "Number of background write I/O threads in InnoDB.",
     (gptr*) &innobase_write_io_threads, (gptr*) &innobase_write_io_threads,
     0, GET_LONG, REQUIRED_ARG, 1, 1, 64, 0, 0, 0},
@@ -445,10 +445,10 @@
  #endif /* End HAVE_INNOBASE_DB */
    {"isam", OPT_ISAM, "Obsolete. ISAM storage engine is no longer supported.",
     (gptr*) &opt_isam, (gptr*) &opt_isam, 0, GET_BOOL, NO_ARG, 0, 0, 0,
-diff -r 2bbfde0e0e70 sql/set_var.cc
---- a/sql/set_var.cc   Mon Dec 22 00:33:11 2008 -0800
-+++ b/sql/set_var.cc   Mon Dec 22 00:33:48 2008 -0800
-@@ -501,6 +501,12 @@
+diff -r 5060df9888d7 sql/set_var.cc
+--- a/sql/set_var.cc   Tue Feb 17 22:33:54 2009 -0800
++++ b/sql/set_var.cc   Tue Feb 17 22:33:58 2009 -0800
+@@ -528,6 +528,12 @@
  sys_var_long_ptr  sys_innodb_show_verbose_locks(
                                          "innodb_show_verbose_locks",
                                          &srv_show_verbose_locks);
@@ -461,7 +461,7 @@
  sys_var_const_os_str_ptr sys_innodb_data_file_path("innodb_data_file_path", 
                                                 &innobase_data_file_path);
  sys_var_const_os_str_ptr sys_innodb_data_home_dir("innodb_data_home_dir", 
-@@ -870,6 +876,9 @@
+@@ -901,6 +907,9 @@
    &sys_innodb_adaptive_checkpoint,
    &sys_innodb_show_locks_held,
    &sys_innodb_show_verbose_locks,
@@ -471,7 +471,7 @@
  #endif
    &sys_trust_routine_creators,
    &sys_trust_function_creators,
-@@ -1012,6 +1021,9 @@
+@@ -1047,6 +1056,9 @@
    {sys_innodb_adaptive_checkpoint.name, (char*) 
&sys_innodb_adaptive_checkpoint, SHOW_SYS},
    {"innodb_read_io_threads", (char*) &innobase_read_io_threads, SHOW_LONG},
    {"innodb_write_io_threads", (char*) &innobase_write_io_threads, SHOW_LONG},
@@ -481,7 +481,7 @@
  #endif
    {sys_interactive_timeout.name,(char*) &sys_interactive_timeout,   SHOW_SYS},
    {sys_join_buffer_size.name,   (char*) &sys_join_buffer_size,            
SHOW_SYS},
-@@ -3117,6 +3129,19 @@
+@@ -3160,6 +3172,19 @@
      thd->variables.lc_time_names= global_system_variables.lc_time_names;
  }
  
@@ -501,10 +501,10 @@
  /*
    Functions to update thd->options bits
  */
-diff -r 2bbfde0e0e70 sql/set_var.h
---- a/sql/set_var.h    Mon Dec 22 00:33:11 2008 -0800
-+++ b/sql/set_var.h    Mon Dec 22 00:33:48 2008 -0800
-@@ -985,6 +985,17 @@
+diff -r 5060df9888d7 sql/set_var.h
+--- a/sql/set_var.h    Tue Feb 17 22:33:54 2009 -0800
++++ b/sql/set_var.h    Tue Feb 17 22:33:58 2009 -0800
+@@ -989,6 +989,17 @@
    virtual void set_default(THD *thd, enum_var_type type);
  };
  
@@ -522,10 +522,10 @@
  /****************************************************************************
    Classes for parsing of the SET command
  ****************************************************************************/
-diff -r 2bbfde0e0e70 sql/sql_parse.cc
---- a/sql/sql_parse.cc Mon Dec 22 00:33:11 2008 -0800
-+++ b/sql/sql_parse.cc Mon Dec 22 00:33:48 2008 -0800
-@@ -7998,6 +7998,13 @@
+diff -r 5060df9888d7 sql/sql_parse.cc
+--- a/sql/sql_parse.cc Tue Feb 17 22:33:54 2009 -0800
++++ b/sql/sql_parse.cc Tue Feb 17 22:33:58 2009 -0800
+@@ -8009,6 +8009,13 @@
      }
      pthread_mutex_unlock(&LOCK_global_user_client_stats);
    }
@@ -539,9 +539,9 @@
   *write_to_binlog= tmp_write_to_binlog;
   return result;
  }
-diff -r 2bbfde0e0e70 sql/sql_show.cc
---- a/sql/sql_show.cc  Mon Dec 22 00:33:11 2008 -0800
-+++ b/sql/sql_show.cc  Mon Dec 22 00:33:48 2008 -0800
+diff -r 5060df9888d7 sql/sql_show.cc
+--- a/sql/sql_show.cc  Tue Feb 17 22:33:54 2009 -0800
++++ b/sql/sql_show.cc  Tue Feb 17 22:33:58 2009 -0800
 @@ -32,6 +32,17 @@
  #ifdef HAVE_INNOBASE_DB
  #include "ha_innodb.h"
@@ -560,7 +560,7 @@
  
  #ifndef NO_EMBEDDED_ACCESS_CHECKS
  static const char *grant_names[]={
-@@ -4074,6 +4085,67 @@
+@@ -4088,6 +4099,67 @@
    DBUG_RETURN(res);
  }
  
@@ -628,7 +628,7 @@
  /*
    Find schema_tables elment by name
  
-@@ -4880,6 +4952,19 @@
+@@ -4894,6 +4966,19 @@
    {0, 0, MYSQL_TYPE_STRING, 0, 0, 0}
  };
  
@@ -648,7 +648,7 @@
  
  ST_FIELD_INFO variables_fields_info[]=
  {
-@@ -5055,6 +5140,10 @@
+@@ -5069,6 +5154,10 @@
     make_old_format, 0, -1, -1, 1},
    {"VIEWS", view_fields_info, create_schema_table, 
      get_all_tables, 0, get_schema_views_record, 1, 2, 0},
@@ -659,9 +659,9 @@
    {0, 0, 0, 0, 0, 0, 0, 0, 0}
  };
  
-diff -r 2bbfde0e0e70 sql/sql_yacc.yy
---- a/sql/sql_yacc.yy  Mon Dec 22 00:33:11 2008 -0800
-+++ b/sql/sql_yacc.yy  Mon Dec 22 00:33:48 2008 -0800
+diff -r 5060df9888d7 sql/sql_yacc.yy
+--- a/sql/sql_yacc.yy  Tue Feb 17 22:33:54 2009 -0800
++++ b/sql/sql_yacc.yy  Tue Feb 17 22:33:58 2009 -0800
 @@ -685,6 +685,7 @@
  %token  INFILE
  %token  INNER_SYM

================================================================
Index: SOURCES/mysql-innodb_locks_held.patch
diff -u SOURCES/mysql-innodb_locks_held.patch:1.1.2.2 
SOURCES/mysql-innodb_locks_held.patch:1.1.2.3
--- SOURCES/mysql-innodb_locks_held.patch:1.1.2.2       Tue Feb  3 17:46:09 2009
+++ SOURCES/mysql-innodb_locks_held.patch       Thu Mar 12 22:49:05 2009
@@ -1,6 +1,6 @@
-diff -r ae6708ab17e5 innobase/include/srv0srv.h
---- a/innobase/include/srv0srv.h       Mon Dec 22 00:32:07 2008 -0800
-+++ b/innobase/include/srv0srv.h       Mon Dec 22 00:32:58 2008 -0800
+diff -r 7d3d7786b927 innobase/include/srv0srv.h
+--- a/innobase/include/srv0srv.h       Tue Feb 17 22:33:33 2009 -0800
++++ b/innobase/include/srv0srv.h       Tue Feb 17 22:33:47 2009 -0800
 @@ -80,6 +80,8 @@
  extern ulint  srv_log_file_size;
  extern ulint  srv_log_buffer_size;
@@ -10,9 +10,9 @@
  
  extern byte   srv_latin1_ordering[256];/* The sort order table of the latin1
                                        character set */
-diff -r ae6708ab17e5 innobase/lock/lock0lock.c
---- a/innobase/lock/lock0lock.c        Mon Dec 22 00:32:07 2008 -0800
-+++ b/innobase/lock/lock0lock.c        Mon Dec 22 00:32:58 2008 -0800
+diff -r 7d3d7786b927 innobase/lock/lock0lock.c
+--- a/innobase/lock/lock0lock.c        Tue Feb 17 22:33:33 2009 -0800
++++ b/innobase/lock/lock0lock.c        Tue Feb 17 22:33:47 2009 -0800
 @@ -4181,6 +4181,7 @@
  #endif /* UNIV_SYNC_DEBUG */
        }
@@ -50,9 +50,9 @@
                        file);
        
                nth_trx++;
-diff -r ae6708ab17e5 innobase/srv/srv0srv.c
---- a/innobase/srv/srv0srv.c   Mon Dec 22 00:32:07 2008 -0800
-+++ b/innobase/srv/srv0srv.c   Mon Dec 22 00:32:58 2008 -0800
+diff -r 7d3d7786b927 innobase/srv/srv0srv.c
+--- a/innobase/srv/srv0srv.c   Tue Feb 17 22:33:33 2009 -0800
++++ b/innobase/srv/srv0srv.c   Tue Feb 17 22:33:47 2009 -0800
 @@ -116,6 +116,8 @@
  ulint srv_log_file_size       = ULINT_MAX;    /* size in database pages */ 
  ulint srv_log_buffer_size     = ULINT_MAX;    /* size in database pages */ 
@@ -62,7 +62,7 @@
  
  byte  srv_latin1_ordering[256]        /* The sort order table of the latin1
                                        character set. The following table is
-@@ -1694,24 +1696,6 @@
+@@ -1703,24 +1705,6 @@
  
        mutex_exit(&dict_foreign_err_mutex);
  
@@ -87,10 +87,11 @@
        fputs("--------\n"
                "FILE I/O\n"
                "--------\n", file);
-@@ -1805,6 +1789,25 @@
+@@ -1813,6 +1797,25 @@
+       srv_n_rows_updated_old = srv_n_rows_updated;
        srv_n_rows_deleted_old = srv_n_rows_deleted;
        srv_n_rows_read_old = srv_n_rows_read;
- 
++
 +      lock_print_info_summary(file);
 +      if (trx_start) {
 +              long    t = ftell(file);
@@ -109,13 +110,12 @@
 +                      *trx_end = (ulint) t;
 +              }
 +      }
-+
+ 
    fputs("----------------------------\n"
                       "END OF INNODB MONITOR OUTPUT\n"
-               "============================\n", file);
-diff -r ae6708ab17e5 libmysqld/set_var.cc
---- a/libmysqld/set_var.cc     Mon Dec 22 00:32:07 2008 -0800
-+++ b/libmysqld/set_var.cc     Mon Dec 22 00:32:58 2008 -0800
+diff -r 7d3d7786b927 libmysqld/set_var.cc
+--- a/libmysqld/set_var.cc     Tue Feb 17 22:33:33 2009 -0800
++++ b/libmysqld/set_var.cc     Tue Feb 17 22:33:47 2009 -0800
 @@ -821,6 +821,8 @@
    &sys_innodb_thread_concurrency,
    &sys_innodb_commit_concurrency,
@@ -134,9 +134,9 @@
    {"innodb_flush_method",    (char*) &innobase_unix_file_flush_method, 
SHOW_CHAR_PTR},
    {"innodb_force_recovery", (char*) &innobase_force_recovery, SHOW_LONG },
    {"innodb_lock_wait_timeout", (char*) &innobase_lock_wait_timeout, SHOW_LONG 
},
-diff -r ae6708ab17e5 patch_info/innodb_locks_held.info
+diff -r 7d3d7786b927 patch_info/innodb_locks_held.info
 --- /dev/null  Thu Jan 01 00:00:00 1970 +0000
-+++ b/patch_info/innodb_locks_held.info        Mon Dec 22 00:32:58 2008 -0800
++++ b/patch_info/innodb_locks_held.info        Tue Feb 17 22:33:47 2009 -0800
 @@ -0,0 +1,6 @@
 +File=innodb_locks_held.patch
 +Name=Add locks held, remove locked records in SHOW INNODB STATUS
@@ -144,22 +144,22 @@
 +Author=Baron Schwartz <[email protected]>
 +License=GPL
 +Comment=Bug #29126 fix
-diff -r ae6708ab17e5 sql/ha_innodb.h
---- a/sql/ha_innodb.h  Mon Dec 22 00:32:07 2008 -0800
-+++ b/sql/ha_innodb.h  Mon Dec 22 00:32:58 2008 -0800
-@@ -238,6 +238,8 @@
- extern ulong srv_io_capacity;
- extern ulong srv_read_ahead;
+diff -r 7d3d7786b927 sql/ha_innodb.h
+--- a/sql/ha_innodb.h  Tue Feb 17 22:33:33 2009 -0800
++++ b/sql/ha_innodb.h  Tue Feb 17 22:33:47 2009 -0800
+@@ -242,6 +242,8 @@
+ extern ulong srv_flush_neighbor_pages;
+ extern uint srv_read_ahead;
  extern ulong srv_adaptive_checkpoint;
 +extern ulong srv_show_locks_held;
 +extern ulong srv_show_verbose_locks;
  }
  
  bool innobase_init(void);
-diff -r ae6708ab17e5 sql/mysqld.cc
---- a/sql/mysqld.cc    Mon Dec 22 00:32:07 2008 -0800
-+++ b/sql/mysqld.cc    Mon Dec 22 00:32:58 2008 -0800
-@@ -4969,6 +4969,8 @@
+diff -r 7d3d7786b927 sql/mysqld.cc
+--- a/sql/mysqld.cc    Tue Feb 17 22:33:33 2009 -0800
++++ b/sql/mysqld.cc    Tue Feb 17 22:33:47 2009 -0800
+@@ -5012,6 +5012,8 @@
    OPT_INNODB_MAX_PURGE_LAG,
    OPT_INNODB_FILE_IO_THREADS,
    OPT_INNODB_LOCK_WAIT_TIMEOUT,
@@ -168,7 +168,7 @@
    OPT_INNODB_THREAD_CONCURRENCY,
    OPT_INNODB_COMMIT_CONCURRENCY,
    OPT_INNODB_FORCE_RECOVERY,
-@@ -5308,6 +5310,14 @@
+@@ -5356,6 +5358,14 @@
     (gptr*) &srv_flush_log_at_trx_commit,
     (gptr*) &srv_flush_log_at_trx_commit,
     0, GET_ULONG, OPT_ARG,  1, 0, 2, 0, 0, 0},
@@ -183,11 +183,11 @@
    {"innodb_flush_method", OPT_INNODB_FLUSH_METHOD,
     "With which method to flush data.", (gptr*) 
&innobase_unix_file_flush_method,
     (gptr*) &innobase_unix_file_flush_method, 0, GET_STR, REQUIRED_ARG, 0, 0, 
0,
-diff -r ae6708ab17e5 sql/set_var.cc
---- a/sql/set_var.cc   Mon Dec 22 00:32:07 2008 -0800
-+++ b/sql/set_var.cc   Mon Dec 22 00:32:58 2008 -0800
-@@ -495,6 +495,12 @@
-                                               &srv_read_ahead);
+diff -r 7d3d7786b927 sql/set_var.cc
+--- a/sql/set_var.cc   Tue Feb 17 22:33:33 2009 -0800
++++ b/sql/set_var.cc   Tue Feb 17 22:33:47 2009 -0800
+@@ -522,6 +522,12 @@
+                                       &innodb_read_ahead_typelib, 
fix_innodb_read_ahead);
  sys_var_long_ptr      
sys_innodb_adaptive_checkpoint("innodb_adaptive_checkpoint",
                                                        
&srv_adaptive_checkpoint);
 +sys_var_long_ptr  sys_innodb_show_locks_held(
@@ -199,8 +199,8 @@
  sys_var_const_os_str_ptr sys_innodb_data_file_path("innodb_data_file_path", 
                                                 &innobase_data_file_path);
  sys_var_const_os_str_ptr sys_innodb_data_home_dir("innodb_data_home_dir", 
-@@ -862,6 +868,8 @@
-   &sys_innodb_io_capacity,
+@@ -893,6 +899,8 @@
+   &sys_innodb_flush_neighbor_pages,
    &sys_innodb_read_ahead,
    &sys_innodb_adaptive_checkpoint,
 +  &sys_innodb_show_locks_held,
@@ -208,7 +208,7 @@
  #endif
    &sys_trust_routine_creators,
    &sys_trust_function_creators,
-@@ -977,6 +985,8 @@
+@@ -1008,6 +1016,8 @@
    {"innodb_file_io_threads", (char*) &innobase_file_io_threads, SHOW_LONG },
    {"innodb_file_per_table", (char*) &innobase_file_per_table, SHOW_MY_BOOL},
    {sys_innodb_flush_log_at_trx_commit.name, (char*) 
&sys_innodb_flush_log_at_trx_commit, SHOW_SYS},

================================================================
Index: SOURCES/mysql-innodb_rw_lock.patch
diff -u SOURCES/mysql-innodb_rw_lock.patch:1.1.2.1 
SOURCES/mysql-innodb_rw_lock.patch:1.1.2.2
--- SOURCES/mysql-innodb_rw_lock.patch:1.1.2.1  Fri Jan  9 12:04:50 2009
+++ SOURCES/mysql-innodb_rw_lock.patch  Thu Mar 12 22:49:06 2009
@@ -173,13 +173,19 @@
  /*================*/
        rw_lock_t*      lock);
  UNIV_INLINE
-@@ -408,6 +418,11 @@
+@@ -408,6 +418,17 @@
        rw_lock_debug_t*        info);  /* in: debug struct */
  #endif /* UNIV_SYNC_DEBUG */
  
 +#ifdef HAVE_ATOMIC_BUILTINS
 +/* This value means NOT_LOCKED */
 +#define RW_LOCK_BIAS          0x00100000
++#else
++#error HAVE_ATOMIC_BUILTINS is not defined. Do you use enough new GCC or 
compatibles?
++#error Or do you use exact options for CFLAGS?
++#error e.g. (for x86_32): "-m32 -march=i586 -mtune=i686"
++#error e.g. (for Sparc_64): "-m64 -mcpu=v9"
++#error Otherwise, this build may be slower than normal version.
 +#endif
 +
  /* NOTE! The structure appears here only for the compiler to know its size.
@@ -1024,7 +1030,7 @@
                /* If we get here, locking did not succeed, we may
                suspend the thread to wait in the wait array */
  
-@@ -281,9 +311,19 @@
+@@ -281,9 +311,26 @@
                                file_name, line,
                                &index);
  
@@ -1039,6 +1045,13 @@
 +                              return; /* Success */
 +                      }
 +              }
++
++              /* If wait_ex_waiter stalls, wakes it. */
++              if (lock->wait_ex_waiters && lock->lock_word == RW_LOCK_BIAS) {
++                      rw_lock_set_wx_waiters(lock, 0);
++                      os_event_set(lock->wait_ex_event);
++                      sync_array_object_signalled(sync_primary_wait_array);
++              }
 +#else
                mutex_exit(rw_lock_get_mutex(lock));
 +#endif
@@ -1095,32 +1108,32 @@
 +      switch(rw_lock_get_writer(lock)) {
 +          case RW_LOCK_WAIT_EX:
 +              /* have right to try x-lock */
-+              if (lock->lock_word == RW_LOCK_BIAS) {
-+                      /* try x-lock */
-+                      if(__sync_sub_and_fetch(&(lock->lock_word),
-+                                      RW_LOCK_BIAS) == 0) {
-+                              /* success */
-+                              lock->pass = pass;
-+                              lock->writer_is_wait_ex = FALSE;
-+                              __sync_fetch_and_add(&(lock->writer_count),1);
++retry_x_lock:
++              /* try x-lock */
++              if(__sync_sub_and_fetch(&(lock->lock_word),
++                              RW_LOCK_BIAS) == 0) {
++                      /* success */
++                      lock->pass = pass;
++                      lock->writer_is_wait_ex = FALSE;
++                      __sync_fetch_and_add(&(lock->writer_count),1);
 +
 +#ifdef UNIV_SYNC_DEBUG
-+                              rw_lock_remove_debug_info(lock, pass, 
RW_LOCK_WAIT_EX);
-+                              rw_lock_add_debug_info(lock, pass, RW_LOCK_EX,
-+                                                      file_name, line);
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/mysql-innodb_io_pattern.patch?r1=1.1.2.1&r2=1.1.2.2&f=u
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/mysql-innodb_locks_held.patch?r1=1.1.2.2&r2=1.1.2.3&f=u
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/mysql-innodb_rw_lock.patch?r1=1.1.2.1&r2=1.1.2.2&f=u
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/mysql-microslow_innodb.patch?r1=1.1.2.5&r2=1.1.2.6&f=u
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/mysql-split_buf_pool_mutex_fixed_optimistic_safe.patch?r1=1.1.2.2&r2=1.1.2.3&f=u
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/mysql-userstatv2.patch?r1=1.1.2.5&r2=1.1.2.6&f=u

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

Reply via email to