2014-06-12 14:13:46

by Mike Snitzer

[permalink] [raw]
Subject: [git pull] device mapper changes for 3.16

Hi Linus,

This pull request is later than I'd have liked because I was waiting for
some performance data to help finally justify sending the long-standing
dm-crypt cpu scalability improvements upstream. Unfortunately we came
up short, so those dm-crypt changes will continue to wait, but it seems
we're not far off.

The following changes since commit fad01e866afdbe01a1f3ec06a39c3a8b9e197014:

Linux 3.15-rc8 (2014-06-01 19:12:24 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git tags/dm-3.16-changes

for you to fetch changes up to 09869de57ed2728ae3c619803932a86cb0e2c4f8:

dm thin: update discard_granularity to reflect the thin-pool blocksize (2014-06-11 16:56:12 -0400)

Please pull, thanks.
Mike

----------------------------------------------------------------
. Add dm_accept_partial_bio interface to DM core to allow DM targets
to only process a portion of a bio, the remainder being sent in the
next bio. This enables the old dm snapshot-origin target to only
split write bios on chunk boundaries, read bios are now sent to the
origin device unchanged.

. Add DM core support for disabling WRITE SAME if the underlying SCSI
layer disables it due to command failure.

. Reduce lock contention in DM's bio-prison.

. A few small cleanups and fixes to dm-thin and dm-era.

----------------------------------------------------------------
Heinz Mauelshagen (1):
dm bio prison: implement per bucket locking in the dm_bio_prison hash table

Joe Thornber (2):
dm thin: cleanup noflush_work to use a proper completion
dm era: check for a non-NULL metadata object before closing it

Lukas Czerner (1):
dm thin: update discard_granularity to reflect the thin-pool blocksize

Mike Snitzer (3):
dm thin: return ENOSPC instead of EIO when error_if_no_space enabled
dm: disable WRITE SAME if it fails
dm: remove symbol export for dm_set_device_limits

Mikulas Patocka (4):
dm: change sector_count member in clone_info from sector_t to unsigned
dm: introduce dm_accept_partial_bio
dm snapshot: allocate a per-target structure for snapshot-origin target
dm snapshot: do not split read bios sent to snapshot-origin target

drivers/md/dm-bio-prison.c | 70 ++++++++++++++++++--------------
drivers/md/dm-bio-prison.h | 2 +-
drivers/md/dm-era-target.c | 3 +-
drivers/md/dm-mpath.c | 11 +----
drivers/md/dm-snap.c | 67 ++++++++++++++++++++++---------
drivers/md/dm-table.c | 5 +--
drivers/md/dm-thin.c | 93 ++++++++++++++++++++++++++++---------------
drivers/md/dm.c | 86 ++++++++++++++++++++++++++++++++-------
include/linux/device-mapper.h | 10 ++---
9 files changed, 230 insertions(+), 117 deletions(-)


2015-02-16 21:01:48

by Mike Snitzer

[permalink] [raw]
Subject: targeting dm-crypt cpu scalability changes for 3.20 still [was: Re: [git pull] device mapper changes for 3.16]

On Thu, Jun 12 2014 at 10:13am -0400,
Mike Snitzer <[email protected]> wrote:

> Hi Linus,
>
> This pull request is later than I'd have liked because I was waiting for
> some performance data to help finally justify sending the long-standing
> dm-crypt cpu scalability improvements upstream. Unfortunately we came
> up short, so those dm-crypt changes will continue to wait, but it seems
> we're not far off.

I'm sharing this because I recently saw you use dm-crypt with Fedora on
your workstation.

Just wanted to let you know that these same dm-crypt changes are staged
in for-next (like they were for months). But now with the added ability
to use feature flags to disable the new changes that proved to hurt some
workloads. If curious, feel free to see the topmost 7 commits here:
https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/log/?h=dm-for-3.20

Those who are cc'd are involved with validating these dm-crypt changes
against the new 3.20 baseline.

If all goes as expected I'll have another 3.20 merge pull request for
you by the end of the week (with context for where impressive
performance improvements have been seen).

Mike

2015-02-20 15:48:31

by Mike Snitzer

[permalink] [raw]
Subject: [git pull] additional device mapper changes for 3.20

Hi Linus,

The following changes since commit 802ea9d8645d33d24b7b4cd4537c14f3e698bde0:

Merge tag 'dm-3.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm (2015-02-12 16:36:31 -0800)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git tags/dm-3.20-changes-2

for you to fetch changes up to 22aa66a3ee5b61e0f4a0bfeabcaa567861109ec3:

dm snapshot: fix a possible invalid memory access on unload (2015-02-18 09:41:54 -0500)

----------------------------------------------------------------
- Significant dm-crypt CPU scalability performance improvements thanks
to changes that enable effective use of an unbound workqueue across
all available CPUs. A large battery of tests were performed to
validate these changes, summary of results is available here:
https://www.redhat.com/archives/dm-devel/2015-February/msg00106.html

- A few additional stable fixes (to DM core, dm-snapshot and dm-mirror)
and a small fix to the dm-space-map-disk.

----------------------------------------------------------------
Darrick J. Wong (1):
dm io: reject unsupported DISCARD requests with EOPNOTSUPP

Mike Snitzer (1):
dm space map disk: fix sm_disk_count_is_more_than_one()

Mikulas Patocka (10):
dm mirror: do not degrade the mirror on discard error
dm crypt: use unbound workqueue for request processing
dm crypt: don't allocate pages for a partial request
dm crypt: avoid deadlock in mempools
dm crypt: remove unused io_pool and _crypt_io_pool
dm crypt: offload writes to thread
dm crypt: add 'submit_from_crypt_cpus' option
dm crypt: sort writes
dm: fix a race condition in dm_get_md
dm snapshot: fix a possible invalid memory access on unload

Documentation/device-mapper/dm-crypt.txt | 15 +-
drivers/md/dm-crypt.c | 392 ++++++++++++++-----------
drivers/md/dm-io.c | 6 +
drivers/md/dm-raid1.c | 9 +
drivers/md/dm-snap.c | 4 +-
drivers/md/dm.c | 27 +-
drivers/md/persistent-data/dm-space-map-disk.c | 4 +-
7 files changed, 269 insertions(+), 188 deletions(-)