Skip to content

Commit

Permalink
block: reuse BIO_INLINE_VECS for integrity bvecs
Browse files Browse the repository at this point in the history
bvec_alloc always uses biovec_slabs, and thus always needs to use the
same number of inline vecs.  Share a single definition for the data
and integrity bvecs.

Signed-off-by: Christoph Hellwig <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
  • Loading branch information
Christoph Hellwig authored and axboe committed Feb 8, 2021
1 parent 8358c28 commit dc0b8a5
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 10 deletions.
6 changes: 2 additions & 4 deletions block/bio-integrity.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
#include <linux/slab.h>
#include "blk.h"

#define BIP_INLINE_VECS 4

static struct kmem_cache *bip_slab;
static struct workqueue_struct *kintegrityd_wq;

Expand Down Expand Up @@ -63,7 +61,7 @@ struct bio_integrity_payload *bio_integrity_alloc(struct bio *bio,
inline_vecs = nr_vecs;
} else {
bip = mempool_alloc(&bs->bio_integrity_pool, gfp_mask);
inline_vecs = BIP_INLINE_VECS;
inline_vecs = BIO_INLINE_VECS;
}

if (unlikely(!bip))
Expand Down Expand Up @@ -470,6 +468,6 @@ void __init bio_integrity_init(void)

bip_slab = kmem_cache_create("bio_integrity_payload",
sizeof(struct bio_integrity_payload) +
sizeof(struct bio_vec) * BIP_INLINE_VECS,
sizeof(struct bio_vec) * BIO_INLINE_VECS,
0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
}
6 changes: 0 additions & 6 deletions block/bio.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,6 @@
#include "blk.h"
#include "blk-rq-qos.h"

/*
* Test patch to inline a certain number of bi_io_vec's inside the bio
* itself, to shrink a bio data allocation from two mempool calls to one
*/
#define BIO_INLINE_VECS 4

/*
* if you change this list, also change bvec_alloc or things will
* break badly! cannot be bigger than what you can fit into an
Expand Down
1 change: 1 addition & 0 deletions block/blk.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ void blk_free_flush_queue(struct blk_flush_queue *q);

void blk_freeze_queue(struct request_queue *q);

#define BIO_INLINE_VECS 4
struct bio_vec *bvec_alloc(gfp_t, int, unsigned long *, mempool_t *);
void bvec_free(mempool_t *, struct bio_vec *, unsigned int);
unsigned int bvec_nr_vecs(unsigned short idx);
Expand Down

0 comments on commit dc0b8a5

Please sign in to comment.