diff options
author | Mike Snitzer <snitzer@redhat.com> | 2017-12-11 23:17:47 -0500 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2017-12-16 20:43:13 -0500 |
commit | 64f52b0e31489b46465cff2e61ab2e1f60a3b4eb (patch) | |
tree | df8fa456e546efbff6aa8bf39157a18caf32047e /drivers/md/dm-core.h | |
parent | 745dc570b2c379730d2a78acdeb65b5239e833c6 (diff) | |
download | linux-64f52b0e31489b46465cff2e61ab2e1f60a3b4eb.tar.gz linux-64f52b0e31489b46465cff2e61ab2e1f60a3b4eb.tar.bz2 linux-64f52b0e31489b46465cff2e61ab2e1f60a3b4eb.zip |
dm: improve performance by moving dm_io structure to per-bio-data
Eliminates need for a separate mempool to allocate 'struct dm_io'
objects from. As such, it saves an extra mempool allocation for each
original bio that DM core is issued.
This complicates the per-bio-data accessor functions by needing to
conditonally add extra padding to get to a target's per-bio-data. But
in the end this provides a decent performance improvement for all
bio-based DM devices.
On an NVMe-loop based testbed to a ramdisk (~3100 MB/s): bio-based
DM linear performance improved by 2% (went from 2665 to 2777 MB/s).
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md/dm-core.h')
-rw-r--r-- | drivers/md/dm-core.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/md/dm-core.h b/drivers/md/dm-core.h index 6a14f945783c..8a7dc8f9e40f 100644 --- a/drivers/md/dm-core.h +++ b/drivers/md/dm-core.h @@ -91,6 +91,7 @@ struct mapped_device { /* * io objects are allocated from here. */ + struct bio_set *io_bs; mempool_t *io_pool; struct bio_set *bs; |