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
Also need this upstream commit:
02101c45ec5b1 x86/asm: Optimize memcpy_flushcache()
Verified with kernel-4.18.0-325.el8.
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.