Commit 60a622d1 authored by Marko Mäkelä's avatar Marko Mäkelä

Bug#59707 Unused compression-related parameters in buffer pool functions

buf_block_alloc(): ulint zip_size is always 0.
buf_LRU_get_free_block(): ulint zip_size is always 0.
buf_LRU_free_block(): ibool* buf_pool_mutex_released is always NULL.

Remove these parameters.

buf_LRU_get_free_block(): Simplify the initialization of block->page.zip
and release buf_pool_mutex() earlier.
parent cad4ba19
2011-01-25 The InnoDB Team
* btr/btr0btr.c, btr/btr0cur.c, btr/btr0sea.c,
buf/buf0buddy.c, buf/buf0buf.c, buf/buf0lru.c,
include/buf0buf.h, include/buf0buf.ic, include/buf0lru.h,
mem/mem0mem.c, page/page0zip.c:
Fix Bug#59707 Unused compression-related parameters
in buffer pool functions
2011-01-18 The InnoDB Team 2011-01-18 The InnoDB Team
* include/sync0rw.h, sync/sync0arr.c, sync/sync0rw.c: * include/sync0rw.h, sync/sync0arr.c, sync/sync0rw.c:
......
...@@ -979,7 +979,7 @@ btr_page_reorganize_low( ...@@ -979,7 +979,7 @@ btr_page_reorganize_low(
log_mode = mtr_set_log_mode(mtr, MTR_LOG_NONE); log_mode = mtr_set_log_mode(mtr, MTR_LOG_NONE);
#ifndef UNIV_HOTBACKUP #ifndef UNIV_HOTBACKUP
temp_block = buf_block_alloc(0); temp_block = buf_block_alloc();
#else /* !UNIV_HOTBACKUP */ #else /* !UNIV_HOTBACKUP */
ut_ad(block == back_block1); ut_ad(block == back_block1);
temp_block = back_block2; temp_block = back_block2;
......
...@@ -3767,13 +3767,12 @@ btr_blob_free( ...@@ -3767,13 +3767,12 @@ btr_blob_free(
&& buf_block_get_space(block) == space && buf_block_get_space(block) == space
&& buf_block_get_page_no(block) == page_no) { && buf_block_get_page_no(block) == page_no) {
if (buf_LRU_free_block(&block->page, all, NULL) if (buf_LRU_free_block(&block->page, all) != BUF_LRU_FREED
!= BUF_LRU_FREED
&& all && block->page.zip.data) { && all && block->page.zip.data) {
/* Attempt to deallocate the uncompressed page /* Attempt to deallocate the uncompressed page
if the whole block cannot be deallocted. */ if the whole block cannot be deallocted. */
buf_LRU_free_block(&block->page, FALSE, NULL); buf_LRU_free_block(&block->page, FALSE);
} }
} }
......
...@@ -141,7 +141,7 @@ btr_search_check_free_space_in_heap(void) ...@@ -141,7 +141,7 @@ btr_search_check_free_space_in_heap(void)
be enough free space in the hash table. */ be enough free space in the hash table. */
if (heap->free_block == NULL) { if (heap->free_block == NULL) {
buf_block_t* block = buf_block_alloc(0); buf_block_t* block = buf_block_alloc();
rw_lock_x_lock(&btr_search_latch); rw_lock_x_lock(&btr_search_latch);
......
...@@ -327,7 +327,7 @@ buf_buddy_alloc_low( ...@@ -327,7 +327,7 @@ buf_buddy_alloc_low(
/* Try replacing an uncompressed page in the buffer pool. */ /* Try replacing an uncompressed page in the buffer pool. */
buf_pool_mutex_exit(); buf_pool_mutex_exit();
block = buf_LRU_get_free_block(0); block = buf_LRU_get_free_block();
*lru = TRUE; *lru = TRUE;
buf_pool_mutex_enter(); buf_pool_mutex_enter();
......
...@@ -1283,7 +1283,7 @@ buf_pool_shrink( ...@@ -1283,7 +1283,7 @@ buf_pool_shrink(
buf_LRU_make_block_old(&block->page); buf_LRU_make_block_old(&block->page);
dirty++; dirty++;
} else if (buf_LRU_free_block(&block->page, TRUE, NULL) } else if (buf_LRU_free_block(&block->page, TRUE)
!= BUF_LRU_FREED) { != BUF_LRU_FREED) {
nonfree++; nonfree++;
} }
...@@ -1729,8 +1729,7 @@ buf_page_get_zip( ...@@ -1729,8 +1729,7 @@ buf_page_get_zip(
mutex_enter(block_mutex); mutex_enter(block_mutex);
/* Discard the uncompressed page frame if possible. */ /* Discard the uncompressed page frame if possible. */
if (buf_LRU_free_block(bpage, FALSE, NULL) if (buf_LRU_free_block(bpage, FALSE) == BUF_LRU_FREED) {
== BUF_LRU_FREED) {
mutex_exit(block_mutex); mutex_exit(block_mutex);
goto lookup; goto lookup;
...@@ -2165,7 +2164,7 @@ buf_page_get_gen( ...@@ -2165,7 +2164,7 @@ buf_page_get_gen(
buf_pool_mutex_exit(); buf_pool_mutex_exit();
mutex_exit(&buf_pool_zip_mutex); mutex_exit(&buf_pool_zip_mutex);
block = buf_LRU_get_free_block(0); block = buf_LRU_get_free_block();
ut_a(block); ut_a(block);
buf_pool_mutex_enter(); buf_pool_mutex_enter();
...@@ -2291,8 +2290,7 @@ buf_page_get_gen( ...@@ -2291,8 +2290,7 @@ buf_page_get_gen(
/* Try to evict the block from the buffer pool, to use the /* Try to evict the block from the buffer pool, to use the
insert buffer as much as possible. */ insert buffer as much as possible. */
if (buf_LRU_free_block(&block->page, TRUE, NULL) if (buf_LRU_free_block(&block->page, TRUE) == BUF_LRU_FREED) {
== BUF_LRU_FREED) {
buf_pool_mutex_exit(); buf_pool_mutex_exit();
mutex_exit(&block->mutex); mutex_exit(&block->mutex);
fprintf(stderr, fprintf(stderr,
...@@ -2829,7 +2827,7 @@ buf_page_init_for_read( ...@@ -2829,7 +2827,7 @@ buf_page_init_for_read(
&& UNIV_LIKELY(!recv_recovery_is_on())) { && UNIV_LIKELY(!recv_recovery_is_on())) {
block = NULL; block = NULL;
} else { } else {
block = buf_LRU_get_free_block(0); block = buf_LRU_get_free_block();
ut_ad(block); ut_ad(block);
} }
...@@ -3001,7 +2999,7 @@ buf_page_create( ...@@ -3001,7 +2999,7 @@ buf_page_create(
ut_ad(mtr->state == MTR_ACTIVE); ut_ad(mtr->state == MTR_ACTIVE);
ut_ad(space || !zip_size); ut_ad(space || !zip_size);
free_block = buf_LRU_get_free_block(0); free_block = buf_LRU_get_free_block();
buf_pool_mutex_enter(); buf_pool_mutex_enter();
......
...@@ -575,7 +575,7 @@ buf_LRU_free_from_unzip_LRU_list( ...@@ -575,7 +575,7 @@ buf_LRU_free_from_unzip_LRU_list(
ut_ad(block->page.in_LRU_list); ut_ad(block->page.in_LRU_list);
mutex_enter(&block->mutex); mutex_enter(&block->mutex);
freed = buf_LRU_free_block(&block->page, FALSE, NULL); freed = buf_LRU_free_block(&block->page, FALSE);
mutex_exit(&block->mutex); mutex_exit(&block->mutex);
switch (freed) { switch (freed) {
...@@ -636,7 +636,7 @@ buf_LRU_free_from_common_LRU_list( ...@@ -636,7 +636,7 @@ buf_LRU_free_from_common_LRU_list(
mutex_enter(block_mutex); mutex_enter(block_mutex);
accessed = buf_page_is_accessed(bpage); accessed = buf_page_is_accessed(bpage);
freed = buf_LRU_free_block(bpage, TRUE, NULL); freed = buf_LRU_free_block(bpage, TRUE);
mutex_exit(block_mutex); mutex_exit(block_mutex);
switch (freed) { switch (freed) {
...@@ -798,10 +798,8 @@ LRU list to the free list. ...@@ -798,10 +798,8 @@ LRU list to the free list.
@return the free control block, in state BUF_BLOCK_READY_FOR_USE */ @return the free control block, in state BUF_BLOCK_READY_FOR_USE */
UNIV_INTERN UNIV_INTERN
buf_block_t* buf_block_t*
buf_LRU_get_free_block( buf_LRU_get_free_block(void)
/*===================*/ /*========================*/
ulint zip_size) /*!< in: compressed page size in bytes,
or 0 if uncompressed tablespace */
{ {
buf_block_t* block = NULL; buf_block_t* block = NULL;
ibool freed; ibool freed;
...@@ -877,26 +875,10 @@ buf_LRU_get_free_block( ...@@ -877,26 +875,10 @@ buf_LRU_get_free_block(
/* If there is a block in the free list, take it */ /* If there is a block in the free list, take it */
block = buf_LRU_get_free_only(); block = buf_LRU_get_free_only();
if (block) { buf_pool_mutex_exit();
#ifdef UNIV_DEBUG
block->page.zip.m_start =
#endif /* UNIV_DEBUG */
block->page.zip.m_end =
block->page.zip.m_nonempty =
block->page.zip.n_blobs = 0;
if (UNIV_UNLIKELY(zip_size)) {
ibool lru;
page_zip_set_size(&block->page.zip, zip_size);
block->page.zip.data = buf_buddy_alloc(zip_size, &lru);
UNIV_MEM_DESC(block->page.zip.data, zip_size, block);
} else {
page_zip_set_size(&block->page.zip, 0);
block->page.zip.data = NULL;
}
buf_pool_mutex_exit(); if (block) {
memset(&block->page.zip, 0, sizeof block->page.zip);
if (started_monitor) { if (started_monitor) {
srv_print_innodb_monitor = mon_value_was; srv_print_innodb_monitor = mon_value_was;
...@@ -908,8 +890,6 @@ buf_LRU_get_free_block( ...@@ -908,8 +890,6 @@ buf_LRU_get_free_block(
/* If no block was in the free list, search from the end of the LRU /* If no block was in the free list, search from the end of the LRU
list and try to free a block there */ list and try to free a block there */
buf_pool_mutex_exit();
freed = buf_LRU_search_and_free_block(n_iterations); freed = buf_LRU_search_and_free_block(n_iterations);
if (freed > 0) { if (freed > 0) {
...@@ -1378,12 +1358,8 @@ enum buf_lru_free_block_status ...@@ -1378,12 +1358,8 @@ enum buf_lru_free_block_status
buf_LRU_free_block( buf_LRU_free_block(
/*===============*/ /*===============*/
buf_page_t* bpage, /*!< in: block to be freed */ buf_page_t* bpage, /*!< in: block to be freed */
ibool zip, /*!< in: TRUE if should remove also the ibool zip) /*!< in: TRUE if should remove also the
compressed page of an uncompressed page */ compressed page of an uncompressed page */
ibool* buf_pool_mutex_released)
/*!< in: pointer to a variable that will
be assigned TRUE if buf_pool_mutex
was temporarily released, or NULL */
{ {
buf_page_t* b = NULL; buf_page_t* b = NULL;
mutex_t* block_mutex = buf_page_get_mutex(bpage); mutex_t* block_mutex = buf_page_get_mutex(bpage);
...@@ -1554,10 +1530,6 @@ buf_LRU_free_block( ...@@ -1554,10 +1530,6 @@ buf_LRU_free_block(
b->io_fix = BUF_IO_READ; b->io_fix = BUF_IO_READ;
} }
if (buf_pool_mutex_released) {
*buf_pool_mutex_released = TRUE;
}
buf_pool_mutex_exit(); buf_pool_mutex_exit();
mutex_exit(block_mutex); mutex_exit(block_mutex);
......
...@@ -165,10 +165,8 @@ Allocates a buffer block. ...@@ -165,10 +165,8 @@ Allocates a buffer block.
@return own: the allocated block, in state BUF_BLOCK_MEMORY */ @return own: the allocated block, in state BUF_BLOCK_MEMORY */
UNIV_INLINE UNIV_INLINE
buf_block_t* buf_block_t*
buf_block_alloc( buf_block_alloc(void);
/*============*/ /*=================*/
ulint zip_size); /*!< in: compressed page size in bytes,
or 0 if uncompressed tablespace */
/********************************************************************//** /********************************************************************//**
Frees a buffer block which does not contain a file page. */ Frees a buffer block which does not contain a file page. */
UNIV_INLINE UNIV_INLINE
......
...@@ -719,14 +719,12 @@ Allocates a buffer block. ...@@ -719,14 +719,12 @@ Allocates a buffer block.
@return own: the allocated block, in state BUF_BLOCK_MEMORY */ @return own: the allocated block, in state BUF_BLOCK_MEMORY */
UNIV_INLINE UNIV_INLINE
buf_block_t* buf_block_t*
buf_block_alloc( buf_block_alloc(void)
/*============*/ /*=================*/
ulint zip_size) /*!< in: compressed page size in bytes,
or 0 if uncompressed tablespace */
{ {
buf_block_t* block; buf_block_t* block;
block = buf_LRU_get_free_block(zip_size); block = buf_LRU_get_free_block();
buf_block_set_state(block, BUF_BLOCK_MEMORY); buf_block_set_state(block, BUF_BLOCK_MEMORY);
......
...@@ -110,12 +110,9 @@ enum buf_lru_free_block_status ...@@ -110,12 +110,9 @@ enum buf_lru_free_block_status
buf_LRU_free_block( buf_LRU_free_block(
/*===============*/ /*===============*/
buf_page_t* bpage, /*!< in: block to be freed */ buf_page_t* bpage, /*!< in: block to be freed */
ibool zip, /*!< in: TRUE if should remove also the ibool zip) /*!< in: TRUE if should remove also the
compressed page of an uncompressed page */ compressed page of an uncompressed page */
ibool* buf_pool_mutex_released); __attribute__((nonnull));
/*!< in: pointer to a variable that will
be assigned TRUE if buf_pool_mutex
was temporarily released, or NULL */
/******************************************************************//** /******************************************************************//**
Try to free a replaceable block. Try to free a replaceable block.
@return TRUE if found and freed */ @return TRUE if found and freed */
...@@ -146,10 +143,9 @@ LRU list to the free list. ...@@ -146,10 +143,9 @@ LRU list to the free list.
@return the free control block, in state BUF_BLOCK_READY_FOR_USE */ @return the free control block, in state BUF_BLOCK_READY_FOR_USE */
UNIV_INTERN UNIV_INTERN
buf_block_t* buf_block_t*
buf_LRU_get_free_block( buf_LRU_get_free_block(void)
/*===================*/ /*========================*/
ulint zip_size); /*!< in: compressed page size in bytes, __attribute__((warn_unused_result));
or 0 if uncompressed tablespace */
/******************************************************************//** /******************************************************************//**
Puts a block back to the free list. */ Puts a block back to the free list. */
......
...@@ -347,7 +347,7 @@ mem_heap_create_block( ...@@ -347,7 +347,7 @@ mem_heap_create_block(
return(NULL); return(NULL);
} }
} else { } else {
buf_block = buf_block_alloc(0); buf_block = buf_block_alloc();
} }
block = (mem_block_t*) buf_block->frame; block = (mem_block_t*) buf_block->frame;
......
...@@ -4439,7 +4439,7 @@ page_zip_reorganize( ...@@ -4439,7 +4439,7 @@ page_zip_reorganize(
log_mode = mtr_set_log_mode(mtr, MTR_LOG_NONE); log_mode = mtr_set_log_mode(mtr, MTR_LOG_NONE);
#ifndef UNIV_HOTBACKUP #ifndef UNIV_HOTBACKUP
temp_block = buf_block_alloc(0); temp_block = buf_block_alloc();
btr_search_drop_page_hash_index(block); btr_search_drop_page_hash_index(block);
block->check_index_page_at_flush = TRUE; block->check_index_page_at_flush = TRUE;
#else /* !UNIV_HOTBACKUP */ #else /* !UNIV_HOTBACKUP */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment