[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