[dm-devel] [git pull] device mapper changes for 4.6
Mike Snitzer
snitzer at redhat.com
Wed Mar 16 14:21:11 UTC 2016
Hi Linus,
The following changes since commit 4328daa2e79ed904a42ce00a9f38b9c36b44b21a:
dm: fix dm_rq_target_io leak on faults with .request_fn DM w/ blk-mq paths (2016-02-21 20:27:50 -0500)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm tags/dm-4.6-changes
for you to fetch changes up to 98dbc9c6c61698792e3a66f32f3bf066201d42d7:
dm: fix rq_end_stats() NULL pointer in dm_requeue_original_request() (2016-03-14 17:04:34 -0400)
Please pull, thanks.
Mike
----------------------------------------------------------------
- Most attention this cycle went to optimizing blk-mq request-based DM
(dm-mq) that is used exclussively by DM multipath.
- A stable fix for dm-mq that eliminates excessive context switching
offers the biggest performance improvement (for both IOPs and
throughput).
- But more work is needed, during the next cycle, to reduce spinlock
contention in DM multipath on large NUMA systems.
- A stable fix for a NULL pointer seen when DM stats is enabled on a DM
multipath device that must requeue an IO due to path failure.
- A stable fix for DM snapshot to disallow the COW and origin devices
from being identical. This amounts to graceful failure in the face of
userspace error because these devices shouldn't ever be identical.
- Stable fixes for DM cache and DM thin provisioning to address crashes
seen if/when their respective metadata device experiences failures
that cause the transition to 'fail_io' mode.
- The DM cache 'mq' policy is now an alias for the 'smq' policy. The
'smq' policy proved to be consistently better than 'mq'. As such
'mq', with all its complex user-facing tunables, has been eliminated.
- Improve DM thin provisioning to consistently return -ENOSPC once the
thin-pool's data volume is out of space.
- Improve DM core to properly handle error propagation if
bio_integrity_clone() fails in clone_bio().
- Other small cleanups and improvements to DM core.
----------------------------------------------------------------
Bob Liu (1):
dm: drop unnecessary assignment of md->queue
Bryn M. Reeves (1):
dm: fix rq_end_stats() NULL pointer in dm_requeue_original_request()
DingXiang (1):
dm snapshot: disallow the COW and origin devices from being identical
Joe Thornber (3):
dm cache: make the 'mq' policy an alias for 'smq'
dm thin metadata: don't issue prefetches if a transaction abort has failed
dm cache: make sure every metadata function checks fail_io
Mike Snitzer (35):
dm: do not return target from dm_get_live_table_for_ioctl()
dm: fix sparse "unexpected unlock" warnings in ioctl code
dm: fix excessive dm-mq context switching
dm: remove unused dm_get_rq_mapinfo()
dm: cleanup dm_any_congested()
dm: set DM_TARGET_WILDCARD feature on "error" target
dm: optimize dm_mq_queue_rq()
dm: optimize dm_request_fn()
dm: add 'dm_mq_nr_hw_queues' and 'dm_mq_queue_depth' module params
dm: allocate blk_mq_tag_set rather than embed in mapped_device
dm: fix a couple locking issues with use of block interfaces
dm: remove support for stacking dm-mq on .request_fn device(s)
dm: distinquish old .request_fn (dm-old) vs dm-mq request-based DM
dm: rename target's per_bio_data_size to per_io_data_size
dm: allow immutable request-based targets to use blk-mq pdu
dm mpath: use blk-mq pdu for per-request 'struct dm_mpath_io'
dm mpath: cleanup 'struct dm_mpath_io' management code
dm mpath: use blk_mq_alloc_request() and blk_mq_free_request() directly
dm mpath: remove unnecessary casts in front of ti->private
dm mpath: remove repeat_count support from multipath core
dm mpath: push path selector locking down to path selectors
dm path selector: remove 'repeat_count' return from .select_path hook
dm round robin: use percpu 'repeat_count' and 'current_path'
dm mpath: switch from 'unsigned' to 'bool' for flags where appropriate
dm mpath: remove __pgpath_busy forward declaration, rename to pgpath_busy
dm mpath: cleanup reinstate_path() et al based on code review
dm thin metadata: remove needless newline from subtree_dec() DMERR message
dm: add 'dm_numa_node' module parameter
dm: remove dummy definition of 'struct dm_table'
dm: reorder 'struct mapped_device' members to fix alignment and holes
dm: return error if bio_integrity_clone() fails in clone_bio()
dm cache policy smq: clarify that mq registration failure was for 'mq'
dm: add missing newline between DM_DEBUG_BLOCK_STACK_TRACING and DM_BUFIO
dm cache: bump the target version
dm thin: consistently return -ENOSPC if pool has run out of data space
Documentation/device-mapper/cache-policies.txt | 39 +-
block/blk-core.c | 2 +-
drivers/md/Kconfig | 11 +-
drivers/md/Makefile | 2 -
drivers/md/dm-cache-metadata.c | 98 +-
drivers/md/dm-cache-metadata.h | 4 +-
drivers/md/dm-cache-policy-mq.c | 1473 ------------------------
drivers/md/dm-cache-policy-smq.c | 92 +-
drivers/md/dm-cache-target.c | 16 +-
drivers/md/dm-crypt.c | 2 +-
drivers/md/dm-delay.c | 2 +-
drivers/md/dm-flakey.c | 2 +-
drivers/md/dm-ioctl.c | 5 +-
drivers/md/dm-log-writes.c | 2 +-
drivers/md/dm-mpath.c | 216 ++--
drivers/md/dm-path-selector.h | 5 -
drivers/md/dm-queue-length.c | 37 +-
drivers/md/dm-raid1.c | 2 +-
drivers/md/dm-round-robin.c | 85 +-
drivers/md/dm-service-time.c | 35 +-
drivers/md/dm-snap.c | 11 +-
drivers/md/dm-table.c | 66 +-
drivers/md/dm-target.c | 3 +-
drivers/md/dm-thin-metadata.c | 7 +-
drivers/md/dm-thin.c | 23 +-
drivers/md/dm-verity-fec.c | 2 +-
drivers/md/dm-verity-target.c | 12 +-
drivers/md/dm.c | 600 +++++-----
drivers/md/dm.h | 4 +-
include/linux/device-mapper.h | 15 +-
30 files changed, 849 insertions(+), 2024 deletions(-)
delete mode 100644 drivers/md/dm-cache-policy-mq.c
More information about the dm-devel
mailing list