home | list info | list archive | date index | thread index

Re: Specific commits mentioned during supper at L3GO

Hi Alex,

Do you happen to know if these have previously been, or are going to be, reported to the Linux kernel group (linux-kernel [ at ] vger [ dot ] kernel [ dot ] org) or related mailing lists, which can be found here: https://wiki.linuxfoundation.org/realtime/communication/mailinglists

-Katie


On 2025-10-17 13:41, Alex Pilon via sigs-l3go wrote:
commit 1d57628ff95b32d5cfa8d8f50e07690c161e9cf0
Author: Dongsheng Yang <dongsheng [ dot ] yang [ at ] linux [ dot ] dev>
Date:   Tue Aug 12 08:24:52 2025 +0000

    dm-pcache: add persistent cache target in device-mapper

    This patch introduces dm-pcache, a new DM target that places a DAX-
capable persistent-memory device in front of any slower block device and
    uses it as a high-throughput, low-latency  cache.

    Design highlights
    -----------------
    - DAX data path – data is copied directly between DRAM and the pmem
      mapping, bypassing the block layer’s overhead.

    - Segmented, crash-consistent layout
      - all layout metadata are dual-replicated CRC-protected.
- atomic kset flushes; key replay on mount guarantees cache integrity
        even after power loss.

    - Striped multi-tree index
      - Multi‑tree indexing for high parallelism.
- overlap-resolution logic ensures non-intersecting cached extents.

    - Background services
- write-back worker flushes dirty keys in order, preserving backing-device crash consistency. This is important for checkpoint in cloud storage. - garbage collector reclaims clean segments when utilisation exceeds a
        tunable threshold.

- Data integrity – optional CRC32 on cached payload; metadata always protected.

    Comparison with existing block-level caches
--------------------------------------------------------------------------------------------------------------------------------- | Feature | pcache (this patch) | bcache | dm-writecache | |----------------------------------|---------------------------------|------------------------------|---------------------------| | pmem access method | DAX | bio (block I/O) | DAX | | Write latency (4 K rand-write) | ~5 µs | ~20 µs | ~5 µs | | Concurrency | multi subtree index | global index tree | single tree + wc_lock | | IOPS (4K randwrite, 32 numjobs) | 2.1 M | 352 K | 283 K | | Read-cache support | YES | YES | NO | | Deployment | no re-format of backend | backend devices must be | no re-format of backend | | | | reformatted | | | Write-back ordering | log-structured; | no ordering guarantee | no ordering guarantee | | | preserves app-IO-order | | | | Data integrity checks | metadata + data CRC(optional) | metadata CRC only | none | ---------------------------------------------------------------------------------------------------------------------------------

    Signed-off-by: Dongsheng Yang <dongsheng [ dot ] yang [ at ] linux [ dot ] dev>
    Signed-off-by: Mikulas Patocka <mpatocka [ at ] redhat [ dot ] com>

--
Manage your subscription: https://lists.linux-ottawa.org/sigs-l3go/listinfo.html
--
Manage your subscription: https://lists.linux-ottawa.org/sigs-l3go/listinfo.html