~tsarev/percona-server/5.5_slow_extended_bugs_slow_extended_bugs

« back to all changes in this revision

Viewing changes to innodb_extend_slow.patch

  • Committer: kinoyasu
  • Date: 2011-06-28 05:57:14 UTC
  • mfrom: (133.1.1 5.5.13-tmp)
  • Revision ID: kinoyasu@gauntlet4-20110628055714-vbdqy5eo3gmhsb2c
fix bug802348

Show diffs side-by-side

added added

removed removed

Lines of Context:
75
75
 
76
76
 #if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
77
77
                ut_a(++buf_dbg_counter % 37 || buf_validate());
78
 
@@ -2499,6 +2541,13 @@
 
78
@@ -2518,6 +2560,13 @@
79
79
                /* Let us wait until the read operation
80
80
                completes */
81
81
 
89
89
                for (;;) {
90
90
                        enum buf_io_fix io_fix;
91
91
 
92
 
@@ -2513,6 +2562,12 @@
 
92
@@ -2532,6 +2581,12 @@
93
93
                                break;
94
94
                        }
95
95
                }
102
102
        }
103
103
 
104
104
 #ifdef UNIV_IBUF_COUNT_DEBUG
105
 
@@ -2828,6 +2883,11 @@
 
105
@@ -2847,6 +2902,11 @@
106
106
        ibool           must_read;
107
107
        ulint           retries = 0;
108
108
        mutex_t*        block_mutex = NULL;
114
114
        buf_pool_t*     buf_pool = buf_pool_get(space, offset);
115
115
 
116
116
        ut_ad(mtr);
117
 
@@ -2856,6 +2916,9 @@
 
117
@@ -2875,6 +2935,9 @@
118
118
              || ibuf_page_low(space, zip_size, offset,
119
119
                               FALSE, file, line, NULL));
120
120
 #endif
124
124
        buf_pool->stat.n_page_gets++;
125
125
        fold = buf_page_address_fold(space, offset);
126
126
 loop:
127
 
@@ -2930,7 +2993,7 @@
 
127
@@ -2949,7 +3012,7 @@
128
128
                        return(NULL);
129
129
                }
130
130
 
133
133
                        retries = 0;
134
134
                } else if (retries < BUF_PAGE_READ_MAX_RETRIES) {
135
135
                        ++retries;
136
 
@@ -3239,6 +3302,13 @@
 
136
@@ -3258,6 +3321,13 @@
137
137
                        /* Let us wait until the read operation
138
138
                        completes */
139
139
 
147
147
                        for (;;) {
148
148
                                enum buf_io_fix io_fix;
149
149
 
150
 
@@ -3253,6 +3323,12 @@
 
150
@@ -3272,6 +3342,12 @@
151
151
                                        break;
152
152
                                }
153
153
                        }
160
160
                }
161
161
 
162
162
                fix_type = MTR_MEMO_BUF_FIX;
163
 
@@ -3279,13 +3355,17 @@
 
163
@@ -3298,13 +3374,17 @@
164
164
                read-ahead */
165
165
 
166
166
                buf_read_ahead_linear(space, zip_size, offset,
179
179
        return(block);
180
180
 }
181
181
 
182
 
@@ -3309,6 +3389,7 @@
 
182
@@ -3328,6 +3408,7 @@
183
183
        unsigned        access_time;
184
184
        ibool           success;
185
185
        ulint           fix_type;
187
187
 
188
188
        ut_ad(block);
189
189
        ut_ad(mtr);
190
 
@@ -3386,6 +3467,10 @@
 
190
@@ -3405,6 +3486,10 @@
191
191
 #if defined UNIV_DEBUG_FILE_ACCESSES || defined UNIV_DEBUG
192
192
        ut_a(block->page.file_page_was_freed == FALSE);
193
193
 #endif
198
198
        if (UNIV_UNLIKELY(!access_time)) {
199
199
                /* In the case of a first access, try to apply linear
200
200
                read-ahead */
201
 
@@ -3393,7 +3478,7 @@
 
201
@@ -3412,7 +3497,7 @@
202
202
                buf_read_ahead_linear(buf_block_get_space(block),
203
203
                                      buf_block_get_zip_size(block),
204
204
                                      buf_block_get_page_no(block),
207
207
        }
208
208
 
209
209
 #ifdef UNIV_IBUF_COUNT_DEBUG
210
 
@@ -3403,6 +3488,9 @@
 
210
@@ -3422,6 +3507,9 @@
211
211
        buf_pool = buf_pool_from_block(block);
212
212
        buf_pool->stat.n_page_gets++;
213
213
 
217
217
        return(TRUE);
218
218
 }
219
219
 
220
 
@@ -3425,6 +3513,7 @@
 
220
@@ -3444,6 +3532,7 @@
221
221
        buf_pool_t*     buf_pool;
222
222
        ibool           success;
223
223
        ulint           fix_type;
225
225
 
226
226
        ut_ad(mtr);
227
227
        ut_ad(mtr->state == MTR_ACTIVE);
228
 
@@ -3511,6 +3600,11 @@
 
228
@@ -3530,6 +3619,11 @@
229
229
 #endif
230
230
        buf_pool->stat.n_page_gets++;
231
231