[PATCH 00/19] s390/dasd: ESE Performance improvements
Stefan Haberland <[email protected]> Wed, 5 Aug 2026 13:15:53 +0200
| Newsgroups | org.kernel.vger.linux-block,org.kernel.vger.linux-s390 |
|---|---|
| Message-ID | <[email protected]> |
Hello Jens,
please apply the patch series for the upcoming merge window.
It applies onto your for-next branch.
The series significantly improves the performance and overall usability of
Extent Space Efficient (ESE, aka thin provisioned) DASD devices.
On a freshly provisioned ESE volume I get the following throughput
improvements, depending on workload and setup:
workload change
raw seq 1 MiB writes ~53x
fs bulk-load (xfs, buffered) ~49x
raw seq full-track (48k) ~3.7x
raw random 4k writes ~1.3x
control: fully-allocated vol ~0% (no regression)
(fresh quick-formatted ESE volume, 4 jobs, iodepth 16, median of 3)
The first 4 patches are fixes for existing bugs in this area, afterwards
the infrastructure for and usage of Full Track Writes is added to the
driver as well as an improved collision detection. The other patches add
some tuning parameters and output as well as a new on disk format label.
FWIW: The series has been reviewed by Sashiko before. The remaining
findings are pre existing bugs that will be assessed and addressed
separately, false positives that are not a bug or not valid for ECKD
DASD devices, in-between-patch findings that are resolved at the tip
of the series, or accepted limitations.
Thanks,
Stefan
Stefan Haberland (19):
s390/dasd: Do not complete a failed ESE read as successful
s390/dasd: Propagate partial completion length across ERP recovery
s390/dasd: Guard sysfs discipline callbacks against unallocated
private data
s390/dasd: Snapshot intrc before freeing the request block
s390/dasd: Optimize max blocks per request for track alignment
s390/dasd: Use GFP_KERNEL in dasd_alloc_device()
s390/dasd: Add defines for the Extended Address Volume track address
s390/dasd: Add infrastructure for ESE full-track write
s390/dasd: Add range-based format-track collision detection
s390/dasd: Extend prepare_itcw() to support WRITE_FULL_TRACK
s390/dasd: Add dasd_eckd_build_cp_tpm_writefulltrack()
s390/dasd: Use WRITE_FULL_TRACK in ESE format handler
s390/dasd: Add full_track_bias to control fulltrack write mode
s390/dasd: Derive adaptive ESE fulltrack heuristic from ft_bias
s390/dasd: Stamp a format label into newly formatted volumes
s390/dasd: Detect ESE volumes from the on-disk format label
s390/dasd: Report ESE capability and format mode at device online
s390/dasd: Re-enable discard support for ESE volumes
s390/dasd: Read cached unit address and LSS in the CCW build path
drivers/s390/block/dasd.c | 242 ++++--
drivers/s390/block/dasd_3990_erp.c | 1 +
drivers/s390/block/dasd_devmap.c | 90 +-
drivers/s390/block/dasd_eckd.c | 1263 +++++++++++++++++++++++++---
drivers/s390/block/dasd_eckd.h | 68 +-
drivers/s390/block/dasd_erp.c | 11 +-
drivers/s390/block/dasd_int.h | 149 +++-
7 files changed, 1625 insertions(+), 199 deletions(-)
--
2.53.0