Hi Linus, The following changes since commit c1ae3cfa0e89fa1a7ecc4c99031f5e9ae99d9201: Linux 4.11-rc1 (2017-03-05 12:59:56 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git tags/for-4.12/dm-changes for you to fetch changes up to 390020ad2af9ca04844c4f3b1f299ad8746d84c8: dm bufio: check new buffer allocation watermark every 30 seconds (2017-05-01 15:21:42 -0400) Please pull, thanks. Mike ---------------------------------------------------------------- - A major update for DM cache that reduces the latency for deciding whether blocks should migrate to/from the cache. The bio-prison-v2 interface supports this improvement by enabling direct dispatch of work to workqueues rather than having to delay the actual work dispatch to the DM cache core. So the dm-cache policies are much more nimble by being able to drive IO as they see fit. One immediate benefit from the improved latency is a cache that should be much more adaptive to changing workloads. - Add a new DM integrity target that emulates a block device that has additional per-sector tags that can be used for storing integrity information. - Add a new authenticated encryption feature to the DM crypt target that builds on the capabilities provided by the DM integrity target. - Add MD interface for switching the raid4/5/6 journal mode and update the DM raid target to use it to enable aid4/5/6 journal write-back support. - Switch the DM verity target over to using the asynchronous hash crypto API (this helps work better with architectures that have access to off-CPU algorithm providers, which should reduce CPU utilization). - Various request-based DM and DM multipath fixes and improvements from Bart and Christoph. - A DM thinp target fix for a bio structure leak that occurs for each discard IFF discard passdown is enabled. - A fix for a possible deadlock in DM bufio and a fix to re-check the new buffer allocation watermark in the face of competing admin changes to the 'max_cache_size_bytes' tunable. - A couple DM core cleanups. ---------------------------------------------------------------- Adrian Salido (1): dm ioctl: prevent stack leak in dm ioctl call Andy Shevchenko (1): dm crypt: replace custom implementation of hex2bin() Bart Van Assche (12): dm mpath: requeue after a small delay if blk_get_request() fails dm mpath: split and rename activate_path() to prepare for its expanded use dm mpath: avoid that path removal can trigger an infinite loop dm mpath: delay requeuing while path initialization is in progress dm rq: check blk_mq_register_dev() return value in dm_mq_init_request_queue() dm block manager: remove an unused argument from dm_block_manager_create() dm: verify suspend_locking assumptions at runtime dm mpath: verify __pg_init_all_paths locking assumptions at runtime dm: introduce enum dm_queue_mode to cleanup related code dm mpath: micro-optimize the hot path relative to MPATHF_QUEUE_IF_NO_PATH dm mpath: cleanup QUEUE_IF_NO_PATH bit manipulation by introducing assign_bit() dm mpath: make it easier to detect unintended I/O request flushes Dennis Yang (1): dm thin: fix a memory leak when passing discard bio down Eric Biggers (1): dm crypt: remove obsolete references to per-CPU state Gilad Ben-Yossef (1): dm verity: switch to using asynchronous hash crypto API Heinz Mauelshagen (3): md: add raid4/5/6 journal mode switching API dm raid: fix table line argument order in status dm raid: add raid4/5/6 journal write-back support via journal_mode option Joe Thornber (4): dm bio prison v2: new interface for the bio prison dm cache: significant rework to leverage dm-bio-prison-v2 dm cache: set/clear the cache core's dirty_bitset when loading mappings dm cache policy smq: make the cleaner policy write-back more aggressively Matthias Kaehlcke (1): dm ioctl: remove double parentheses Mike Snitzer (1): dm integrity: factor out create_journal() from dm_integrity_ctr() Mikulas Patocka (15): dm bufio: add sector start offset to dm-bufio interface dm: add integrity target dm integrity: add recovery mode dm crypt: use shifts instead of sector_div dm raid: select the Kconfig option CONFIG_MD_RAID0 dm table: replace while loops with for loops dm: mark targets that pass integrity data dm integrity: various small changes and cleanups dm integrity: support larger block sizes dm crypt: fix large block integrity support dm: remove dummy dm_table definition dm integrity: use hex2bin instead of open-coded variant dm integrity: use previously calculated log2 of sectors_per_block dm bufio: avoid a possible ABBA deadlock dm bufio: check new buffer allocation watermark every 30 seconds Milan Broz (5): dm table: add flag to allow target to handle its own integrity metadata dm crypt: add cryptographic data integrity protection (authenticated encryption) dm crypt: factor IV constructor out to separate function dm crypt: introduce new format of cipher with "capi:" prefix dm crypt: optionally support larger encryption sector size Ondrej Kozina (1): dm crypt: rewrite (wipe) key in crypto layer using random data Somasundaram Krishnasamy (1): dm era: save spacemap metadata root after the pre-commit Tim Murray (1): dm crypt: use WQ_HIGHPRI for the IO and crypt workqueues Vinothkumar Raja (1): dm btree: fix for dm_btree_find_lowest_key() Documentation/device-mapper/dm-crypt.txt | 53 +- Documentation/device-mapper/dm-integrity.txt | 199 ++ Documentation/device-mapper/dm-raid.txt | 14 +- drivers/md/Kconfig | 19 +- drivers/md/Makefile | 7 +- drivers/md/{dm-bio-prison.c => dm-bio-prison-v1.c} | 46 +- drivers/md/{dm-bio-prison.h => dm-bio-prison-v1.h} | 2 +- drivers/md/dm-bio-prison-v2.c | 369 +++ drivers/md/dm-bio-prison-v2.h | 152 + drivers/md/dm-bufio.c | 70 +- drivers/md/dm-bufio.h | 7 + drivers/md/dm-cache-background-tracker.c | 238 ++ drivers/md/dm-cache-background-tracker.h | 46 + drivers/md/dm-cache-metadata.c | 3 - drivers/md/dm-cache-metadata.h | 2 + drivers/md/dm-cache-policy-cleaner.c | 469 --- drivers/md/dm-cache-policy-internal.h | 76 +- drivers/md/dm-cache-policy-smq.c | 821 ++--- drivers/md/dm-cache-policy.h | 187 +- drivers/md/dm-cache-target.c | 2535 +++++++-------- drivers/md/dm-core.h | 2 +- drivers/md/dm-crypt.c | 1253 ++++++-- drivers/md/dm-delay.c | 1 + drivers/md/dm-era-target.c | 10 +- drivers/md/dm-integrity.c | 3238 ++++++++++++++++++++ drivers/md/dm-ioctl.c | 16 +- drivers/md/dm-linear.c | 1 + drivers/md/dm-mpath.c | 171 +- drivers/md/dm-raid.c | 164 +- drivers/md/dm-rq.c | 8 +- drivers/md/dm-stripe.c | 1 + drivers/md/dm-table.c | 99 +- drivers/md/dm-thin-metadata.c | 2 - drivers/md/dm-thin.c | 3 +- drivers/md/dm-verity-fec.c | 4 +- drivers/md/dm-verity-target.c | 201 +- drivers/md/dm-verity.h | 23 +- drivers/md/dm.c | 35 +- drivers/md/dm.h | 8 +- drivers/md/persistent-data/dm-block-manager.c | 1 - drivers/md/persistent-data/dm-block-manager.h | 2 +- drivers/md/persistent-data/dm-btree.c | 8 +- drivers/md/raid5-cache.c | 62 +- drivers/md/raid5.h | 11 + include/linux/device-mapper.h | 26 +- 45 files changed, 7640 insertions(+), 3025 deletions(-) create mode 100644 Documentation/device-mapper/dm-integrity.txt rename drivers/md/{dm-bio-prison.c => dm-bio-prison-v1.c} (94%) rename drivers/md/{dm-bio-prison.h => dm-bio-prison-v1.h} (99%) create mode 100644 drivers/md/dm-bio-prison-v2.c create mode 100644 drivers/md/dm-bio-prison-v2.h create mode 100644 drivers/md/dm-cache-background-tracker.c create mode 100644 drivers/md/dm-cache-background-tracker.h delete mode 100644 drivers/md/dm-cache-policy-cleaner.c create mode 100644 drivers/md/dm-integrity.c -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel