[dm-devel] [PATCH 1/7] dm: lower bio-based mempool reservation

Mikulas Patocka mpatocka at redhat.com
Thu Sep 12 22:40:44 UTC 2013


Acked-by: Mikulas Patocka <mpatocka at redhat.com>

On Thu, 12 Sep 2013, Mike Snitzer wrote:

> Bio-based device mapper processing doesn't need larger mempools (like
> request-based DM does), so lower the number of reserved entries for
> bio-based operation.  16 was already used for bio-based DM's bioset
> but mistakenly wasn't used for it's _io_cache.
> 
> Formalize difference between bio-based and request-based defaults by
> introducing RESERVED_BIO_BASED_IOS and RESERVED_REQUEST_BASED_IOS.
> 
> (based on older code from Mikulas Patocka)
> 
> Signed-off-by: Mike Snitzer <snitzer at redhat.com>
> ---
>  drivers/md/dm.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/md/dm.c b/drivers/md/dm.c
> index 6a5e9ed..47bac14 100644
> --- a/drivers/md/dm.c
> +++ b/drivers/md/dm.c
> @@ -211,7 +211,8 @@ struct dm_md_mempools {
>  	struct bio_set *bs;
>  };
>  
> -#define MIN_IOS 256
> +#define RESERVED_BIO_BASED_IOS		16
> +#define RESERVED_REQUEST_BASED_IOS	256
>  static struct kmem_cache *_io_cache;
>  static struct kmem_cache *_rq_tio_cache;
>  
> @@ -2862,18 +2863,18 @@ struct dm_md_mempools *dm_alloc_md_mempools(unsigned type, unsigned integrity, u
>  
>  	if (type == DM_TYPE_BIO_BASED) {
>  		cachep = _io_cache;
> -		pool_size = 16;
> +		pool_size = RESERVED_BIO_BASED_IOS;
>  		front_pad = roundup(per_bio_data_size, __alignof__(struct dm_target_io)) + offsetof(struct dm_target_io, clone);
>  	} else if (type == DM_TYPE_REQUEST_BASED) {
>  		cachep = _rq_tio_cache;
> -		pool_size = MIN_IOS;
> +		pool_size = RESERVED_REQUEST_BASED_IOS;
>  		front_pad = offsetof(struct dm_rq_clone_bio_info, clone);
>  		/* per_bio_data_size is not used. See __bind_mempools(). */
>  		WARN_ON(per_bio_data_size != 0);
>  	} else
>  		goto out;
>  
> -	pools->io_pool = mempool_create_slab_pool(MIN_IOS, cachep);
> +	pools->io_pool = mempool_create_slab_pool(pool_size, cachep);
>  	if (!pools->io_pool)
>  		goto out;
>  
> -- 
> 1.8.1.4
> 




More information about the dm-devel mailing list