Bug 1978369

Summary: dm writecache: sync with upstream 5.14
Product: Red Hat Enterprise Linux 8 Reporter: Mike Snitzer <msnitzer>
Component: kernelAssignee: Mike Snitzer <msnitzer>
kernel sub component: Other device-mapper QA Contact: Filip Suba <fsuba>
Status: CLOSED ERRATA Docs Contact:
Severity: unspecified    
Priority: high CC: agk, brdeoliv, fsuba, jbrassow, mpatocka, msnitzer
Version: 8.5Keywords: Triaged
Target Milestone: beta   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: kernel-4.18.0-325.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-09 19:23:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Mike Snitzer 2021-07-01 16:25:42 UTC
Description of problem:

Sync dm-writecache changes sent for upstream merge for v5.14-rc1. Developed to address performance issues identified by Intel when they tested ceph-oriented workloads against dm-writecache. Most notable advance is improved performance when the working set exhausts the writecache's free space in the writecache's fast device (e.g. Intel optane device).

linux-dm.git commits that will soon be merged into upstream's linux.git:

db2351eb22e4 dm kcopyd: avoid useless atomic operations
6bcd658f2a2a dm kcopyd: avoid spin_lock_irqsave from process context
ee50cc19d80e dm writecache: don't split bios when overwriting contiguous cache content
af4f6cabcc5a dm writecache: interrupt writeback if suspended
620cbe40ed10 dm writecache: remove unused gfp_t argument from wc_add_block()
991bd8d7bc78 dm writecache: commit just one block, not a full page
8c77f1cb8458 dm writecache: use list_move instead of list_del/list_add in writecache_writeback()
293128b1ef5a dm writecache: have ssd writeback wait if the kcopyd workqueue is busy
ee55b92a7391 dm writecache: flush origin device when writing and cache is full
867de40c4c23 dm writecache: write at least 4k when committing
cd039afa0ad8 dm writecache: add "cleaner" and "max_age" to Documentation
611c3e168b1c dm writecache: add optional "metadata_only" parameter
dc4fa29fe445 dm io tracker: factor out IO tracker
95b88f4d71cb dm writecache: pause writeback if cache full and origin being written directly
5c0de3d72f8c dm writecache: make writeback pause configurable

Comment 1 Mike Snitzer 2021-07-01 17:08:45 UTC
Also need this upstream commit:

02101c45ec5b1 x86/asm: Optimize memcpy_flushcache()

Comment 9 Filip Suba 2021-07-30 09:14:09 UTC
Verified with kernel-4.18.0-325.el8.

Comment 12 errata-xmlrpc 2021-11-09 19:23:41 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: kernel security, bug fix, and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:4356