[PATCH 0/4] The dm-writecache target

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

Here I'm sending the work-in-progress dm-writecache target. It supports 
kernels 4.13 and 4.14-rc.

It supports write caching on persistent memory or SSD. On first use, the 
first sector of the cache device must be zeroed. If the first sector 
doesn't contain valid superblock or zeroes, it is considered error.
Example use:

Persistent memory cache (/dev/sda5 is the base device, /dev/pmem0 is cache):
dmsetup create wc --table "0 24709688 writecache p /dev/sda5 /dev/pmem0 4096 0"

SSD caching:
dmsetup create wc --table "0 24709688 writecache s /dev/sda5 /dev/sdb1 4096 0"

For testing (if you don't have a system with persistent memory), it can 
also use ramdisk as persistent memory. You must enable CONFIG_BLK_DEV_RAM_DAX
dmsetup create wb --table "0 24709688 writecache p /dev/sda5 /dev/ram0 4096 0"

Note: It turned out that on a Broadwell system the clwb instruction is 
really slow (the performance of flushing contiguous range of memory is 
about 350MB/s), so it needs to be changed to use non-temporal store 
instructions that bypass the cache.

The metadata format is "struct wc_memory_superblock" and "struct 
wc_memory_entry" (if seq_count for a particular entry is smaller than 
seq_count in the superblock, the block is considered committed). In 
memory, it builds a tree of structures "struct wc_entry". The tree is 
built on each activation and it is not stored in persistent memory.

Mikulas

--
dm-devel mailing list
dm-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/dm-devel



[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux