PCache v5
This document summarizes dm-pcache patch set v5. It is based on v6.16 of the Linux kernel and contains the latest updates and testing results for the persistent cache target.
Hi Mikulas, This is V5 for dm-pcache, please consider merging.
As you requested, I’ve squashed these patches into a single patch based on v6.16. If anything needs tweaking while merging, feel free to modify it directly. I can also send a rebased version on top of the linux-dm branch if you prefer.
This patch has been tested extensively. Once it’s merged into linux-dm I’ll keep running ongoing tests against dm-6.18.
Code
https://github.com/DataTravelGuide/linux/tree/pcache_v5
Changelog
V5 from V4
- Fix
get_n_vecs()
bug when the buffer is not page‑aligned; usebio_add_max_vecs()
instead. - Use
kvcalloc()
for allocations larger than 32,768 bytes. - For mempool allocations, try
GFP_NOWAIT
first and fall back toGFP_NOIO
.
Testing
The following tests were executed against dm-pcache v5:
- dtg-tests for pcache – includes dmsetup operations, failslab,
fault injection (
fail_make_request
) and backing device delay tests, plus xfstests (generic/rw
) under various parameters. - Striped pmem as cache device – dtg-tests suite executed with a striped pmem configuration.
- KASAN and memleak modes – all of the above tests run with KASAN and memory leak detection enabled.
- gcov coverage – reported 100% function coverage and 90%+ line
coverage; remaining uncovered code includes
BUG()
lines and difficult‑to‑reach error paths. Themempool_alloc
path withGFP_NOIO
was exercised.