- 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.
dm bufio: check new buffer allocation watermark every 30 seconds

dm-bufio checks a watermark when it allocates a new buffer in
__bufio_new().  However, it doesn't check the watermark when the user
changes /sys/module/dm_bufio/parameters/max_cache_size_bytes.

This may result in a problem - if the watermark is high enough so that
all possible buffers are allocated and if the user lowers the value of
"max_cache_size_bytes", the watermark will never be checked against the
new value because no new buffer would be allocated.

To fix this, change __evict_old_buffers() so that it checks the
watermark.  __evict_old_buffers() is called every 30 seconds, so if the
user reduces "max_cache_size_bytes", dm-bufio will react to this change
within 30 seconds and decrease memory consumption.

Depends-on: 1b0fb5a5b2 ("dm bufio: avoid a possible ABBA deadlock")
Cc: stable@vger.kernel.org
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
1 file changed