All of lore.kernel.org
 help / color / mirror / Atom feed
* [git pull] device mapper changes for 5.8
@ 2020-06-05 14:51 Mike Snitzer
  2020-06-05 18:17 ` Mikulas Patocka
  2020-06-05 19:16 ` [git pull v2] " Mike Snitzer
  0 siblings, 2 replies; 6+ messages in thread
From: Mike Snitzer @ 2020-06-05 14:51 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: dm-devel, linux-block, Alasdair G Kergon, Dmitry Baryshkov,
	Eric Biggers, Gabriel Krisman Bertazi, Gustavo A. R. Silva,
	Hannes Reinecke, Heinz Mauelshagen, Khazhismel Kumykov,
	Martin Wilck, Mikulas Patocka, Nathan Chancellor, YueHaibing,
	Zhiqiang Liu

Hi Linus,

For the following changes there is one dm-zoned-metadata.c conflict that
linux-next has been carrying for a while.  See commit d77e96f277 ("Merge
remote-tracking branch 'device-mapper/for-next'") from next-20200605.
It resolves conflict from linux-block's commit 9398554fb3 ("block:
remove the error_sector argument to blkdev_issue_flush").

The following changes since commit 2ef96a5bb12be62ef75b5828c0aab838ebb29cb8:

  Linux 5.7-rc5 (2020-05-10 15:16:58 -0700)

are available in the Git repository at:

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

for you to fetch changes up to d776dc57aea4f0dfae2173c52538becfca54ab9f:

  dm crypt: avoid truncating the logical block size (2020-06-04 20:57:59 -0400)

Please pull, thanks!
Mike

----------------------------------------------------------------
- Largest change for this cycle is the DM zoned target's metadata
  version 2 feature that adds support for pairing regular block
  devices with a zoned device to ease performance impact associated
  with finite random zones of zoned device.  Changes came in 3
  batches: first prepared for and then added the ability to pair a
  single regular block device, second was a batch of fixes to improve
  zoned's reclaim heuristic, third removed the limitation of only
  adding a single additional regular block device to allow many
  devices.  Testing has shown linear scaling as more devices are
  added.

- Add new emulated block size (ebs) target that emulates a smaller
  logical_block_size than a block device supports.  Primary use-case
  is to emulate "512e" devices that have 512 byte logical_block_size
  and 4KB physical_block_size.  This is useful to some legacy
  applications otherwise wouldn't be ablee to be used on 4K devices
  because they depend on issuing IO in 512 byte granularity.

- Add discard interfaces to DM bufio.  First consumer of the interface
  is the dm-ebs target that makes heavy use of dm-bufio.

- Add DM crypt support for using encryopted keys, fix crypt to sleep
  and retry if crypto layer returns -ENOMEM, and fix crypt's block
  queue_limits stacking to not truncate logic_block_size.

- Fix DM integrity to also sleep and retry in response to -ENOMEM from
  the crypto layer.  Also add status line info to Documentation.

- Switch DMDEBUG from a compile time config option to instead use
  dynamic debug via pr_debug.

- Fix DM multipath target's hueristic for how it manages
  "queue_if_no_path" state internally.  DM multipath now avoids
  disabling "queue_if_no_path" unless it is actually needed (e.g. in
  response to configure timeout or explicit "fail_if_no_path"
  message).  This fixes reports of spurious -EIO being reported back
  to userspace application during fault tolerance testing with an NVMe
  backend.  Added various dynamic DMDEBUG messages to assist with
  debugging queue_if_no_path in the future.

- Add a new DM multipath "Historical Service Time" Path Selector.

- Fix DM multipath's dm_blk_ioctl() to switch paths on IO error.

- Improve DM writecache target performance by using explicit
  cache flushing for target's single-threaded usecase and a small
  cleanup to remove unnecessary test in persistent_memory_claim.

- Other small cleanups in DM core, dm-persistent-data, and DM integrity.

----------------------------------------------------------------
Dmitry Baryshkov (1):
      dm crypt: support using encrypted keys

Eric Biggers (1):
      dm crypt: avoid truncating the logical block size

Gabriel Krisman Bertazi (1):
      dm mpath: pass IO start time to path selector

Gustavo A. R. Silva (1):
      dm: replace zero-length array with flexible-array

Hannes Reinecke (38):
      dm zoned: add 'status' callback
      dm zoned: add 'message' callback
      dm zoned: store zone id within the zone structure and kill dmz_id()
      dm zoned: use array for superblock zones
      dm zoned: store device in struct dmz_sb
      dm zoned: move fields from struct dmz_dev to dmz_metadata
      dm zoned: introduce dmz_metadata_label() to format device name
      dm zoned: Introduce dmz_dev_is_dying() and dmz_check_dev()
      dm zoned: remove 'dev' argument from reclaim
      dm zoned: replace 'target' pointer in the bio context
      dm zoned: use dmz_zone_to_dev() when handling metadata I/O
      dm zoned: add metadata logging functions
      dm zoned: Reduce logging output on startup
      dm zoned: ignore metadata zone in dmz_alloc_zone()
      dm zoned: metadata version 2
      dm: use dynamic debug instead of compile-time config option
      dm zoned: remove spurious newlines from debugging messages
      dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone
      dm zoned: separate random and cache zones
      dm zoned: reclaim random zones when idle
      dm zoned: start reclaim with sequential zones
      dm zoned: terminate reclaim on congestion
      dm zoned: remove leftover hunk for switching to sequential zones
      dm zoned: add debugging message for reading superblocks
      dm zoned: avoid unnecessary device recalulation for secondary superblock
      dm zoned: improve logging messages for reclaim
      dm zoned: add a 'reserved' zone flag
      dm zoned: convert to xarray
      dm zoned: allocate temporary superblock for tertiary devices
      dm zoned: add device pointer to struct dm_zone
      dm zoned: add metadata pointer to struct dmz_dev
      dm zoned: per-device reclaim
      dm zoned: move random and sequential zones into struct dmz_dev
      dm zoned: support arbitrary number of devices
      dm zoned: allocate zone by device index
      dm zoned: select reclaim zone based on device index
      dm zoned: prefer full zones for reclaim
      dm zoned: check superblock location

Heinz Mauelshagen (2):
      dm: add emulated block size target
      dm ebs: pass discards down to underlying device

Khazhismel Kumykov (1):
      dm mpath: add Historical Service Time Path Selector

Martin Wilck (1):
      dm mpath: switch paths in dm_blk_ioctl() code path

Mike Snitzer (5):
      dm: use DMDEBUG macros now that they use pr_debug variants
      dm mpath: simplify __must_push_back
      dm mpath: restrict queue_if_no_path state machine
      dm mpath: enhance queue_if_no_path debugging
      dm mpath: add DM device name to Failing/Reinstating path log messages

Mikulas Patocka (10):
      dm bufio: implement discard
      dm writecache: remove superfluous test in persistent_memory_claim
      dm writecache: improve performance on DDR persistent memory (Optane)
      dm bufio: delete unused and inefficient dm_bufio_discard_buffers
      dm crypt: sleep and retry on allocation errors
      dm integrity: sleep and retry on allocation errors
      dm integrity: add status line documentation
      dm bufio: clean up rbtree block ordering
      dm bufio: introduce forget_buffer_locked
      dm ebs: use dm_bufio_forget_buffers

Nathan Chancellor (1):
      dm zoned: Avoid 64-bit division error in dmz_fixup_devices

YueHaibing (1):
      dm integrity: remove set but not used variables

Zhiqiang Liu (1):
      dm persistent data: switch exit_ro_spine to return void

 Documentation/admin-guide/device-mapper/dm-ebs.rst |   51 +
 .../admin-guide/device-mapper/dm-integrity.rst     |    8 +
 .../admin-guide/device-mapper/dm-zoned.rst         |   62 +-
 drivers/md/Kconfig                                 |   20 +
 drivers/md/Makefile                                |    3 +
 drivers/md/dm-bufio.c                              |  109 +-
 drivers/md/dm-crypt.c                              |   91 +-
 drivers/md/dm-ebs-target.c                         |  471 +++++++++
 drivers/md/dm-historical-service-time.c            |  561 +++++++++++
 drivers/md/dm-integrity.c                          |   11 +-
 drivers/md/dm-log-writes.c                         |    2 +-
 drivers/md/dm-mpath.c                              |  123 ++-
 drivers/md/dm-path-selector.h                      |    2 +-
 drivers/md/dm-queue-length.c                       |    2 +-
 drivers/md/dm-raid.c                               |    2 +-
 drivers/md/dm-raid1.c                              |    2 +-
 drivers/md/dm-service-time.c                       |    2 +-
 drivers/md/dm-stats.c                              |    2 +-
 drivers/md/dm-stripe.c                             |    2 +-
 drivers/md/dm-switch.c                             |    2 +-
 drivers/md/dm-writecache.c                         |   42 +-
 drivers/md/dm-zoned-metadata.c                     | 1046 +++++++++++++++-----
 drivers/md/dm-zoned-reclaim.c                      |  210 ++--
 drivers/md/dm-zoned-target.c                       |  463 ++++++---
 drivers/md/dm-zoned.h                              |  113 ++-
 drivers/md/dm.c                                    |   11 +-
 drivers/md/persistent-data/dm-btree-internal.h     |    4 +-
 drivers/md/persistent-data/dm-btree-spine.c        |    6 +-
 include/linux/device-mapper.h                      |    9 +-
 include/linux/dm-bufio.h                           |   12 +
 30 files changed, 2794 insertions(+), 650 deletions(-)
 create mode 100644 Documentation/admin-guide/device-mapper/dm-ebs.rst
 create mode 100644 drivers/md/dm-ebs-target.c
 create mode 100644 drivers/md/dm-historical-service-time.c


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [git pull] device mapper changes for 5.8
  2020-06-05 14:51 [git pull] device mapper changes for 5.8 Mike Snitzer
@ 2020-06-05 18:17 ` Mikulas Patocka
  2020-06-05 19:16 ` [git pull v2] " Mike Snitzer
  1 sibling, 0 replies; 6+ messages in thread
From: Mikulas Patocka @ 2020-06-05 18:17 UTC (permalink / raw)
  To: Mike Snitzer; +Cc: dm-devel

Hi

I'd like to ask to remove these two patches:

>       dm crypt: sleep and retry on allocation errors
>       dm integrity: sleep and retry on allocation errors

Retrying the request in dm-crypt is not safe because crypt_convert_block 
already advanced to the next block (even in the case of allocation failure 
and an error).

We must retry in crypt_convert_block_skcipher, now I am trying to find out 
how to do it properly.

Mikulas

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [git pull v2] device mapper changes for 5.8
  2020-06-05 14:51 [git pull] device mapper changes for 5.8 Mike Snitzer
  2020-06-05 18:17 ` Mikulas Patocka
@ 2020-06-05 19:16 ` Mike Snitzer
  2020-06-05 23:15   ` pr-tracker-bot
  2020-06-09 13:59   ` [git pull v3] " Mike Snitzer
  1 sibling, 2 replies; 6+ messages in thread
From: Mike Snitzer @ 2020-06-05 19:16 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: dm-devel, linux-block, Alasdair G Kergon, Dmitry Baryshkov,
	Eric Biggers, Gabriel Krisman Bertazi, Hannes Reinecke,
	Heinz Mauelshagen, Khazhismel Kumykov, Martin Wilck,
	Mikulas Patocka, Nathan Chancellor, YueHaibing, Zhiqiang Liu

Hi Linus,

I had some miscommunication with Mikulas on his -ENOMEM sleep and retry
changes for dm-crypt and dm-integrity, he no longer thinks them
appropriate: https://www.redhat.com/archives/dm-devel/2020-June/msg00061.html
So I dropped them via rebase and updated the tag (to avoid any
potential for linux-stable churn due to them having cc'd
linux-stable).  Hope that was the correct way forward...

For the following changes there is one dm-zoned-metadata.c conflict that
linux-next has been carrying for a while.  See commit d77e96f277 ("Merge
remote-tracking branch 'device-mapper/for-next'") from next-20200605.
It resolves conflict from linux-block's commit 9398554fb3 ("block:
remove the_error_sector argument to blkdev_issue_flush").

The following changes since commit 2ef96a5bb12be62ef75b5828c0aab838ebb29cb8:

  Linux 5.7-rc5 (2020-05-10 15:16:58 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 64611a15ca9da91ff532982429c44686f4593b5f:

  dm crypt: avoid truncating the logical block size (2020-06-05 14:59:59 -0400)

Please pull, thanks!
Mike

----------------------------------------------------------------
- Largest change for this cycle is the DM zoned target's metadata
  version 2 feature that adds support for pairing regular block
  devices with a zoned device to ease performance impact associated
  with finite random zones of zoned device.  Changes came in 3
  batches: first prepared for and then added the ability to pair a
  single regular block device, second was a batch of fixes to improve
  zoned's reclaim heuristic, third removed the limitation of only
  adding a single additional regular block device to allow many
  devices.  Testing has shown linear scaling as more devices are
  added.

- Add new emulated block size (ebs) target that emulates a smaller
  logical_block_size than a block device supports.  Primary use-case
  is to emulate "512e" devices that have 512 byte logical_block_size
  and 4KB physical_block_size.  This is useful to some legacy
  applications otherwise wouldn't be ablee to be used on 4K devices
  because they depend on issuing IO in 512 byte granularity.

- Add discard interfaces to DM bufio.  First consumer of the interface
  is the dm-ebs target that makes heavy use of dm-bufio.

- Fix DM crypt's block queue_limits stacking to not truncate
  logic_block_size.

- Add Documentation for DM integrity's status line.

- Switch DMDEBUG from a compile time config option to instead use
  dynamic debug via pr_debug.

- Fix DM multipath target's hueristic for how it manages
  "queue_if_no_path" state internally.  DM multipath now avoids
  disabling "queue_if_no_path" unless it is actually needed (e.g. in
  response to configure timeout or explicit "fail_if_no_path"
  message).  This fixes reports of spurious -EIO being reported back
  to userspace application during fault tolerance testing with an NVMe
  backend.  Added various dynamic DMDEBUG messages to assist with
  debugging queue_if_no_path in the future.

- Add a new DM multipath "Historical Service Time" Path Selector.

- Fix DM multipath's dm_blk_ioctl() to switch paths on IO error.

- Improve DM writecache target performance by using explicit
  cache flushing for target's single-threaded usecase and a small
  cleanup to remove unnecessary test in persistent_memory_claim.

- Other small cleanups in DM core, dm-persistent-data, and DM integrity.

----------------------------------------------------------------
Dmitry Baryshkov (1):
      dm crypt: support using encrypted keys

Eric Biggers (1):
      dm crypt: avoid truncating the logical block size

Gabriel Krisman Bertazi (1):
      dm mpath: pass IO start time to path selector

Gustavo A. R. Silva (1):
      dm: replace zero-length array with flexible-array

Hannes Reinecke (38):
      dm zoned: add 'status' callback
      dm zoned: add 'message' callback
      dm zoned: store zone id within the zone structure and kill dmz_id()
      dm zoned: use array for superblock zones
      dm zoned: store device in struct dmz_sb
      dm zoned: move fields from struct dmz_dev to dmz_metadata
      dm zoned: introduce dmz_metadata_label() to format device name
      dm zoned: Introduce dmz_dev_is_dying() and dmz_check_dev()
      dm zoned: remove 'dev' argument from reclaim
      dm zoned: replace 'target' pointer in the bio context
      dm zoned: use dmz_zone_to_dev() when handling metadata I/O
      dm zoned: add metadata logging functions
      dm zoned: Reduce logging output on startup
      dm zoned: ignore metadata zone in dmz_alloc_zone()
      dm zoned: metadata version 2
      dm: use dynamic debug instead of compile-time config option
      dm zoned: remove spurious newlines from debugging messages
      dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone
      dm zoned: separate random and cache zones
      dm zoned: reclaim random zones when idle
      dm zoned: start reclaim with sequential zones
      dm zoned: terminate reclaim on congestion
      dm zoned: remove leftover hunk for switching to sequential zones
      dm zoned: add debugging message for reading superblocks
      dm zoned: avoid unnecessary device recalulation for secondary superblock
      dm zoned: improve logging messages for reclaim
      dm zoned: add a 'reserved' zone flag
      dm zoned: convert to xarray
      dm zoned: allocate temporary superblock for tertiary devices
      dm zoned: add device pointer to struct dm_zone
      dm zoned: add metadata pointer to struct dmz_dev
      dm zoned: per-device reclaim
      dm zoned: move random and sequential zones into struct dmz_dev
      dm zoned: support arbitrary number of devices
      dm zoned: allocate zone by device index
      dm zoned: select reclaim zone based on device index
      dm zoned: prefer full zones for reclaim
      dm zoned: check superblock location

Heinz Mauelshagen (2):
      dm: add emulated block size target
      dm ebs: pass discards down to underlying device

Khazhismel Kumykov (1):
      dm mpath: add Historical Service Time Path Selector

Martin Wilck (1):
      dm mpath: switch paths in dm_blk_ioctl() code path

Mike Snitzer (5):
      dm: use DMDEBUG macros now that they use pr_debug variants
      dm mpath: simplify __must_push_back
      dm mpath: restrict queue_if_no_path state machine
      dm mpath: enhance queue_if_no_path debugging
      dm mpath: add DM device name to Failing/Reinstating path log messages

Mikulas Patocka (8):
      dm bufio: implement discard
      dm writecache: remove superfluous test in persistent_memory_claim
      dm writecache: improve performance on DDR persistent memory (Optane)
      dm bufio: delete unused and inefficient dm_bufio_discard_buffers
      dm integrity: add status line documentation
      dm bufio: clean up rbtree block ordering
      dm bufio: introduce forget_buffer_locked
      dm ebs: use dm_bufio_forget_buffers

Nathan Chancellor (1):
      dm zoned: Avoid 64-bit division error in dmz_fixup_devices

YueHaibing (1):
      dm integrity: remove set but not used variables

Zhiqiang Liu (1):
      dm persistent data: switch exit_ro_spine to return void

 Documentation/admin-guide/device-mapper/dm-ebs.rst |   51 +
 .../admin-guide/device-mapper/dm-integrity.rst     |    8 +
 .../admin-guide/device-mapper/dm-zoned.rst         |   62 +-
 drivers/md/Kconfig                                 |   20 +
 drivers/md/Makefile                                |    3 +
 drivers/md/dm-bufio.c                              |  109 +-
 drivers/md/dm-crypt.c                              |   80 +-
 drivers/md/dm-ebs-target.c                         |  471 +++++++++
 drivers/md/dm-historical-service-time.c            |  561 +++++++++++
 drivers/md/dm-integrity.c                          |    6 +-
 drivers/md/dm-log-writes.c                         |    2 +-
 drivers/md/dm-mpath.c                              |  123 ++-
 drivers/md/dm-path-selector.h                      |    2 +-
 drivers/md/dm-queue-length.c                       |    2 +-
 drivers/md/dm-raid.c                               |    2 +-
 drivers/md/dm-raid1.c                              |    2 +-
 drivers/md/dm-service-time.c                       |    2 +-
 drivers/md/dm-stats.c                              |    2 +-
 drivers/md/dm-stripe.c                             |    2 +-
 drivers/md/dm-switch.c                             |    2 +-
 drivers/md/dm-writecache.c                         |   42 +-
 drivers/md/dm-zoned-metadata.c                     | 1046 +++++++++++++++-----
 drivers/md/dm-zoned-reclaim.c                      |  210 ++--
 drivers/md/dm-zoned-target.c                       |  463 ++++++---
 drivers/md/dm-zoned.h                              |  113 ++-
 drivers/md/dm.c                                    |   11 +-
 drivers/md/persistent-data/dm-btree-internal.h     |    4 +-
 drivers/md/persistent-data/dm-btree-spine.c        |    6 +-
 include/linux/device-mapper.h                      |    9 +-
 include/linux/dm-bufio.h                           |   12 +
 30 files changed, 2779 insertions(+), 649 deletions(-)
 create mode 100644 Documentation/admin-guide/device-mapper/dm-ebs.rst
 create mode 100644 drivers/md/dm-ebs-target.c
 create mode 100644 drivers/md/dm-historical-service-time.c


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [git pull v2] device mapper changes for 5.8
  2020-06-05 19:16 ` [git pull v2] " Mike Snitzer
@ 2020-06-05 23:15   ` pr-tracker-bot
  2020-06-09 13:59   ` [git pull v3] " Mike Snitzer
  1 sibling, 0 replies; 6+ messages in thread
From: pr-tracker-bot @ 2020-06-05 23:15 UTC (permalink / raw)
  To: Mike Snitzer
  Cc: Linus Torvalds, dm-devel, linux-block, Alasdair G Kergon,
	Dmitry Baryshkov, Eric Biggers, Gabriel Krisman Bertazi,
	Hannes Reinecke, Heinz Mauelshagen, Khazhismel Kumykov,
	Martin Wilck, Mikulas Patocka, Nathan Chancellor, YueHaibing,
	Zhiqiang Liu

The pull request you sent on Fri, 5 Jun 2020 15:16:13 -0400:

> git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git tags/for-5.8/dm-changes

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/b25c6644bfd3affd7d0127ce95c5c96c155a7515

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [git pull v3] device mapper changes for 5.8
  2020-06-05 19:16 ` [git pull v2] " Mike Snitzer
  2020-06-05 23:15   ` pr-tracker-bot
@ 2020-06-09 13:59   ` Mike Snitzer
  2020-06-10 12:44     ` Mike Snitzer
  1 sibling, 1 reply; 6+ messages in thread
From: Mike Snitzer @ 2020-06-09 13:59 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: dm-devel, linux-block, Alasdair G Kergon, Dmitry Baryshkov,
	Eric Biggers, Gabriel Krisman Bertazi, Gustavo A. R. Silva,
	Hannes Reinecke, Heinz Mauelshagen, Khazhismel Kumykov,
	Martin Wilck, Mikulas Patocka, Nathan Chancellor, YueHaibing,
	Zhiqiang Liu

[resending as v3 due to my From: email addr in v2 being inexplicably wrong]

Hi Linus,

I had some miscommunication with Mikulas on his -ENOMEM sleep and retry
changes for dm-crypt and dm-integrity, he no longer thinks them
appropriate: https://www.redhat.com/archives/dm-devel/2020-June/msg00061.html
So I dropped them via rebase and updated the tag (to avoid any
potential for linux-stable churn due to Mikulas' commits having
cc'd linux-stable).  Hope that was the correct way forward...

For the following changes there is one dm-zoned-metadata.c conflict that
linux-next has been carrying for a while.  See commit d77e96f277 ("Merge
remote-tracking branch 'device-mapper/for-next'") from next-20200605.
It resolves conflict from linux-block's commit 9398554fb3 ("block:
remove the_error_sector argument to blkdev_issue_flush").

The following changes since commit 2ef96a5bb12be62ef75b5828c0aab838ebb29cb8:

  Linux 5.7-rc5 (2020-05-10 15:16:58 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 64611a15ca9da91ff532982429c44686f4593b5f:

  dm crypt: avoid truncating the logical block size (2020-06-05 14:59:59 -0400)

Please pull, thanks!
Mike

----------------------------------------------------------------
- Largest change for this cycle is the DM zoned target's metadata
  version 2 feature that adds support for pairing regular block
  devices with a zoned device to ease performance impact associated
  with finite random zones of zoned device.  Changes came in 3
  batches: first prepared for and then added the ability to pair a
  single regular block device, second was a batch of fixes to improve
  zoned's reclaim heuristic, third removed the limitation of only
  adding a single additional regular block device to allow many
  devices.  Testing has shown linear scaling as more devices are
  added.

- Add new emulated block size (ebs) target that emulates a smaller
  logical_block_size than a block device supports.  Primary use-case
  is to emulate "512e" devices that have 512 byte logical_block_size
  and 4KB physical_block_size.  This is useful to some legacy
  applications otherwise wouldn't be ablee to be used on 4K devices
  because they depend on issuing IO in 512 byte granularity.

- Add discard interfaces to DM bufio.  First consumer of the interface
  is the dm-ebs target that makes heavy use of dm-bufio.

- Fix DM crypt's block queue_limits stacking to not truncate
  logic_block_size.

- Add Documentation for DM integrity's status line.

- Switch DMDEBUG from a compile time config option to instead use
  dynamic debug via pr_debug.

- Fix DM multipath target's hueristic for how it manages
  "queue_if_no_path" state internally.  DM multipath now avoids
  disabling "queue_if_no_path" unless it is actually needed (e.g. in
  response to configure timeout or explicit "fail_if_no_path"
  message).  This fixes reports of spurious -EIO being reported back
  to userspace application during fault tolerance testing with an NVMe
  backend.  Added various dynamic DMDEBUG messages to assist with
  debugging queue_if_no_path in the future.

- Add a new DM multipath "Historical Service Time" Path Selector.

- Fix DM multipath's dm_blk_ioctl() to switch paths on IO error.

- Improve DM writecache target performance by using explicit
  cache flushing for target's single-threaded usecase and a small
  cleanup to remove unnecessary test in persistent_memory_claim.

- Other small cleanups in DM core, dm-persistent-data, and DM integrity.

----------------------------------------------------------------
Dmitry Baryshkov (1):
      dm crypt: support using encrypted keys

Eric Biggers (1):
      dm crypt: avoid truncating the logical block size

Gabriel Krisman Bertazi (1):
      dm mpath: pass IO start time to path selector

Gustavo A. R. Silva (1):
      dm: replace zero-length array with flexible-array

Hannes Reinecke (38):
      dm zoned: add 'status' callback
      dm zoned: add 'message' callback
      dm zoned: store zone id within the zone structure and kill dmz_id()
      dm zoned: use array for superblock zones
      dm zoned: store device in struct dmz_sb
      dm zoned: move fields from struct dmz_dev to dmz_metadata
      dm zoned: introduce dmz_metadata_label() to format device name
      dm zoned: Introduce dmz_dev_is_dying() and dmz_check_dev()
      dm zoned: remove 'dev' argument from reclaim
      dm zoned: replace 'target' pointer in the bio context
      dm zoned: use dmz_zone_to_dev() when handling metadata I/O
      dm zoned: add metadata logging functions
      dm zoned: Reduce logging output on startup
      dm zoned: ignore metadata zone in dmz_alloc_zone()
      dm zoned: metadata version 2
      dm: use dynamic debug instead of compile-time config option
      dm zoned: remove spurious newlines from debugging messages
      dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone
      dm zoned: separate random and cache zones
      dm zoned: reclaim random zones when idle
      dm zoned: start reclaim with sequential zones
      dm zoned: terminate reclaim on congestion
      dm zoned: remove leftover hunk for switching to sequential zones
      dm zoned: add debugging message for reading superblocks
      dm zoned: avoid unnecessary device recalulation for secondary superblock
      dm zoned: improve logging messages for reclaim
      dm zoned: add a 'reserved' zone flag
      dm zoned: convert to xarray
      dm zoned: allocate temporary superblock for tertiary devices
      dm zoned: add device pointer to struct dm_zone
      dm zoned: add metadata pointer to struct dmz_dev
      dm zoned: per-device reclaim
      dm zoned: move random and sequential zones into struct dmz_dev
      dm zoned: support arbitrary number of devices
      dm zoned: allocate zone by device index
      dm zoned: select reclaim zone based on device index
      dm zoned: prefer full zones for reclaim
      dm zoned: check superblock location

Heinz Mauelshagen (2):
      dm: add emulated block size target
      dm ebs: pass discards down to underlying device

Khazhismel Kumykov (1):
      dm mpath: add Historical Service Time Path Selector

Martin Wilck (1):
      dm mpath: switch paths in dm_blk_ioctl() code path

Mike Snitzer (5):
      dm: use DMDEBUG macros now that they use pr_debug variants
      dm mpath: simplify __must_push_back
      dm mpath: restrict queue_if_no_path state machine
      dm mpath: enhance queue_if_no_path debugging
      dm mpath: add DM device name to Failing/Reinstating path log messages

Mikulas Patocka (8):
      dm bufio: implement discard
      dm writecache: remove superfluous test in persistent_memory_claim
      dm writecache: improve performance on DDR persistent memory (Optane)
      dm bufio: delete unused and inefficient dm_bufio_discard_buffers
      dm integrity: add status line documentation
      dm bufio: clean up rbtree block ordering
      dm bufio: introduce forget_buffer_locked
      dm ebs: use dm_bufio_forget_buffers

Nathan Chancellor (1):
      dm zoned: Avoid 64-bit division error in dmz_fixup_devices

YueHaibing (1):
      dm integrity: remove set but not used variables

Zhiqiang Liu (1):
      dm persistent data: switch exit_ro_spine to return void

 Documentation/admin-guide/device-mapper/dm-ebs.rst |   51 +
 .../admin-guide/device-mapper/dm-integrity.rst     |    8 +
 .../admin-guide/device-mapper/dm-zoned.rst         |   62 +-
 drivers/md/Kconfig                                 |   20 +
 drivers/md/Makefile                                |    3 +
 drivers/md/dm-bufio.c                              |  109 +-
 drivers/md/dm-crypt.c                              |   80 +-
 drivers/md/dm-ebs-target.c                         |  471 +++++++++
 drivers/md/dm-historical-service-time.c            |  561 +++++++++++
 drivers/md/dm-integrity.c                          |    6 +-
 drivers/md/dm-log-writes.c                         |    2 +-
 drivers/md/dm-mpath.c                              |  123 ++-
 drivers/md/dm-path-selector.h                      |    2 +-
 drivers/md/dm-queue-length.c                       |    2 +-
 drivers/md/dm-raid.c                               |    2 +-
 drivers/md/dm-raid1.c                              |    2 +-
 drivers/md/dm-service-time.c                       |    2 +-
 drivers/md/dm-stats.c                              |    2 +-
 drivers/md/dm-stripe.c                             |    2 +-
 drivers/md/dm-switch.c                             |    2 +-
 drivers/md/dm-writecache.c                         |   42 +-
 drivers/md/dm-zoned-metadata.c                     | 1046 +++++++++++++++-----
 drivers/md/dm-zoned-reclaim.c                      |  210 ++--
 drivers/md/dm-zoned-target.c                       |  463 ++++++---
 drivers/md/dm-zoned.h                              |  113 ++-
 drivers/md/dm.c                                    |   11 +-
 drivers/md/persistent-data/dm-btree-internal.h     |    4 +-
 drivers/md/persistent-data/dm-btree-spine.c        |    6 +-
 include/linux/device-mapper.h                      |    9 +-
 include/linux/dm-bufio.h                           |   12 +
 30 files changed, 2779 insertions(+), 649 deletions(-)
 create mode 100644 Documentation/admin-guide/device-mapper/dm-ebs.rst
 create mode 100644 drivers/md/dm-ebs-target.c
 create mode 100644 drivers/md/dm-historical-service-time.c


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [git pull v3] device mapper changes for 5.8
  2020-06-09 13:59   ` [git pull v3] " Mike Snitzer
@ 2020-06-10 12:44     ` Mike Snitzer
  0 siblings, 0 replies; 6+ messages in thread
From: Mike Snitzer @ 2020-06-10 12:44 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: dm-devel, linux-block, Alasdair G Kergon, Dmitry Baryshkov,
	Eric Biggers, Gabriel Krisman Bertazi, Gustavo A. R. Silva,
	Hannes Reinecke, Heinz Mauelshagen, Khazhismel Kumykov,
	Martin Wilck, Mikulas Patocka, Nathan Chancellor, YueHaibing,
	Zhiqiang Liu

On Tue, Jun 09 2020 at  9:59am -0400,
Mike Snitzer <snitzer@redhat.com> wrote:

> [resending as v3 due to my From: email addr in v2 being inexplicably wrong]

The pr-tracker-bot responded to that email address and I missed it:
https://www.redhat.com/archives/dm-devel/2020-June/msg00067.html

I should've just looked at your tree.  Thanks for your quick pull.

Sorry for the noise.

Mike


> 
> Hi Linus,
> 
> I had some miscommunication with Mikulas on his -ENOMEM sleep and retry
> changes for dm-crypt and dm-integrity, he no longer thinks them
> appropriate: https://www.redhat.com/archives/dm-devel/2020-June/msg00061.html
> So I dropped them via rebase and updated the tag (to avoid any
> potential for linux-stable churn due to Mikulas' commits having
> cc'd linux-stable).  Hope that was the correct way forward...
> 
> For the following changes there is one dm-zoned-metadata.c conflict that
> linux-next has been carrying for a while.  See commit d77e96f277 ("Merge
> remote-tracking branch 'device-mapper/for-next'") from next-20200605.
> It resolves conflict from linux-block's commit 9398554fb3 ("block:
> remove the_error_sector argument to blkdev_issue_flush").
> 
> The following changes since commit 2ef96a5bb12be62ef75b5828c0aab838ebb29cb8:
> 
>   Linux 5.7-rc5 (2020-05-10 15:16:58 -0700)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git tags/for-5.8/dm-changes
> 
> for you to fetch changes up to 64611a15ca9da91ff532982429c44686f4593b5f:
> 
>   dm crypt: avoid truncating the logical block size (2020-06-05 14:59:59 -0400)
> 
> Please pull, thanks!
> Mike
> 
> ----------------------------------------------------------------
> - Largest change for this cycle is the DM zoned target's metadata
>   version 2 feature that adds support for pairing regular block
>   devices with a zoned device to ease performance impact associated
>   with finite random zones of zoned device.  Changes came in 3
>   batches: first prepared for and then added the ability to pair a
>   single regular block device, second was a batch of fixes to improve
>   zoned's reclaim heuristic, third removed the limitation of only
>   adding a single additional regular block device to allow many
>   devices.  Testing has shown linear scaling as more devices are
>   added.
> 
> - Add new emulated block size (ebs) target that emulates a smaller
>   logical_block_size than a block device supports.  Primary use-case
>   is to emulate "512e" devices that have 512 byte logical_block_size
>   and 4KB physical_block_size.  This is useful to some legacy
>   applications otherwise wouldn't be ablee to be used on 4K devices
>   because they depend on issuing IO in 512 byte granularity.
> 
> - Add discard interfaces to DM bufio.  First consumer of the interface
>   is the dm-ebs target that makes heavy use of dm-bufio.
> 
> - Fix DM crypt's block queue_limits stacking to not truncate
>   logic_block_size.
> 
> - Add Documentation for DM integrity's status line.
> 
> - Switch DMDEBUG from a compile time config option to instead use
>   dynamic debug via pr_debug.
> 
> - Fix DM multipath target's hueristic for how it manages
>   "queue_if_no_path" state internally.  DM multipath now avoids
>   disabling "queue_if_no_path" unless it is actually needed (e.g. in
>   response to configure timeout or explicit "fail_if_no_path"
>   message).  This fixes reports of spurious -EIO being reported back
>   to userspace application during fault tolerance testing with an NVMe
>   backend.  Added various dynamic DMDEBUG messages to assist with
>   debugging queue_if_no_path in the future.
> 
> - Add a new DM multipath "Historical Service Time" Path Selector.
> 
> - Fix DM multipath's dm_blk_ioctl() to switch paths on IO error.
> 
> - Improve DM writecache target performance by using explicit
>   cache flushing for target's single-threaded usecase and a small
>   cleanup to remove unnecessary test in persistent_memory_claim.
> 
> - Other small cleanups in DM core, dm-persistent-data, and DM integrity.
> 
> ----------------------------------------------------------------
> Dmitry Baryshkov (1):
>       dm crypt: support using encrypted keys
> 
> Eric Biggers (1):
>       dm crypt: avoid truncating the logical block size
> 
> Gabriel Krisman Bertazi (1):
>       dm mpath: pass IO start time to path selector
> 
> Gustavo A. R. Silva (1):
>       dm: replace zero-length array with flexible-array
> 
> Hannes Reinecke (38):
>       dm zoned: add 'status' callback
>       dm zoned: add 'message' callback
>       dm zoned: store zone id within the zone structure and kill dmz_id()
>       dm zoned: use array for superblock zones
>       dm zoned: store device in struct dmz_sb
>       dm zoned: move fields from struct dmz_dev to dmz_metadata
>       dm zoned: introduce dmz_metadata_label() to format device name
>       dm zoned: Introduce dmz_dev_is_dying() and dmz_check_dev()
>       dm zoned: remove 'dev' argument from reclaim
>       dm zoned: replace 'target' pointer in the bio context
>       dm zoned: use dmz_zone_to_dev() when handling metadata I/O
>       dm zoned: add metadata logging functions
>       dm zoned: Reduce logging output on startup
>       dm zoned: ignore metadata zone in dmz_alloc_zone()
>       dm zoned: metadata version 2
>       dm: use dynamic debug instead of compile-time config option
>       dm zoned: remove spurious newlines from debugging messages
>       dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone
>       dm zoned: separate random and cache zones
>       dm zoned: reclaim random zones when idle
>       dm zoned: start reclaim with sequential zones
>       dm zoned: terminate reclaim on congestion
>       dm zoned: remove leftover hunk for switching to sequential zones
>       dm zoned: add debugging message for reading superblocks
>       dm zoned: avoid unnecessary device recalulation for secondary superblock
>       dm zoned: improve logging messages for reclaim
>       dm zoned: add a 'reserved' zone flag
>       dm zoned: convert to xarray
>       dm zoned: allocate temporary superblock for tertiary devices
>       dm zoned: add device pointer to struct dm_zone
>       dm zoned: add metadata pointer to struct dmz_dev
>       dm zoned: per-device reclaim
>       dm zoned: move random and sequential zones into struct dmz_dev
>       dm zoned: support arbitrary number of devices
>       dm zoned: allocate zone by device index
>       dm zoned: select reclaim zone based on device index
>       dm zoned: prefer full zones for reclaim
>       dm zoned: check superblock location
> 
> Heinz Mauelshagen (2):
>       dm: add emulated block size target
>       dm ebs: pass discards down to underlying device
> 
> Khazhismel Kumykov (1):
>       dm mpath: add Historical Service Time Path Selector
> 
> Martin Wilck (1):
>       dm mpath: switch paths in dm_blk_ioctl() code path
> 
> Mike Snitzer (5):
>       dm: use DMDEBUG macros now that they use pr_debug variants
>       dm mpath: simplify __must_push_back
>       dm mpath: restrict queue_if_no_path state machine
>       dm mpath: enhance queue_if_no_path debugging
>       dm mpath: add DM device name to Failing/Reinstating path log messages
> 
> Mikulas Patocka (8):
>       dm bufio: implement discard
>       dm writecache: remove superfluous test in persistent_memory_claim
>       dm writecache: improve performance on DDR persistent memory (Optane)
>       dm bufio: delete unused and inefficient dm_bufio_discard_buffers
>       dm integrity: add status line documentation
>       dm bufio: clean up rbtree block ordering
>       dm bufio: introduce forget_buffer_locked
>       dm ebs: use dm_bufio_forget_buffers
> 
> Nathan Chancellor (1):
>       dm zoned: Avoid 64-bit division error in dmz_fixup_devices
> 
> YueHaibing (1):
>       dm integrity: remove set but not used variables
> 
> Zhiqiang Liu (1):
>       dm persistent data: switch exit_ro_spine to return void
> 
>  Documentation/admin-guide/device-mapper/dm-ebs.rst |   51 +
>  .../admin-guide/device-mapper/dm-integrity.rst     |    8 +
>  .../admin-guide/device-mapper/dm-zoned.rst         |   62 +-
>  drivers/md/Kconfig                                 |   20 +
>  drivers/md/Makefile                                |    3 +
>  drivers/md/dm-bufio.c                              |  109 +-
>  drivers/md/dm-crypt.c                              |   80 +-
>  drivers/md/dm-ebs-target.c                         |  471 +++++++++
>  drivers/md/dm-historical-service-time.c            |  561 +++++++++++
>  drivers/md/dm-integrity.c                          |    6 +-
>  drivers/md/dm-log-writes.c                         |    2 +-
>  drivers/md/dm-mpath.c                              |  123 ++-
>  drivers/md/dm-path-selector.h                      |    2 +-
>  drivers/md/dm-queue-length.c                       |    2 +-
>  drivers/md/dm-raid.c                               |    2 +-
>  drivers/md/dm-raid1.c                              |    2 +-
>  drivers/md/dm-service-time.c                       |    2 +-
>  drivers/md/dm-stats.c                              |    2 +-
>  drivers/md/dm-stripe.c                             |    2 +-
>  drivers/md/dm-switch.c                             |    2 +-
>  drivers/md/dm-writecache.c                         |   42 +-
>  drivers/md/dm-zoned-metadata.c                     | 1046 +++++++++++++++-----
>  drivers/md/dm-zoned-reclaim.c                      |  210 ++--
>  drivers/md/dm-zoned-target.c                       |  463 ++++++---
>  drivers/md/dm-zoned.h                              |  113 ++-
>  drivers/md/dm.c                                    |   11 +-
>  drivers/md/persistent-data/dm-btree-internal.h     |    4 +-
>  drivers/md/persistent-data/dm-btree-spine.c        |    6 +-
>  include/linux/device-mapper.h                      |    9 +-
>  include/linux/dm-bufio.h                           |   12 +
>  30 files changed, 2779 insertions(+), 649 deletions(-)
>  create mode 100644 Documentation/admin-guide/device-mapper/dm-ebs.rst
>  create mode 100644 drivers/md/dm-ebs-target.c
>  create mode 100644 drivers/md/dm-historical-service-time.c


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-06-10 12:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-05 14:51 [git pull] device mapper changes for 5.8 Mike Snitzer
2020-06-05 18:17 ` Mikulas Patocka
2020-06-05 19:16 ` [git pull v2] " Mike Snitzer
2020-06-05 23:15   ` pr-tracker-bot
2020-06-09 13:59   ` [git pull v3] " Mike Snitzer
2020-06-10 12:44     ` Mike Snitzer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.