forked from Intel-BMC/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'for-4.18/dm-changes-v2' of git://git.kernel.org/pub/scm/li…
…nux/kernel/git/device-mapper/linux-dm Pull device mapper updates from Mike Snitzer: - Adjust various DM structure members to improve alignment relative to 4.18 block's mempool_t and bioset changes. - Add DM writecache target that offers writeback caching to persistent memory or SSD. - Small DM core error message change to give context for why a DM table type transition wasn't allowed. * tag 'for-4.18/dm-changes-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm: add writecache target dm: adjust structure members to improve alignment dm: report which conflicting type caused error during table_load()
- Loading branch information
Showing
14 changed files
with
2,466 additions
and
74 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
The writecache target caches writes on persistent memory or on SSD. It | ||
doesn't cache reads because reads are supposed to be cached in page cache | ||
in normal RAM. | ||
|
||
When the device is constructed, the first sector should be zeroed or the | ||
first sector should contain valid superblock from previous invocation. | ||
|
||
Constructor parameters: | ||
1. type of the cache device - "p" or "s" | ||
p - persistent memory | ||
s - SSD | ||
2. the underlying device that will be cached | ||
3. the cache device | ||
4. block size (4096 is recommended; the maximum block size is the page | ||
size) | ||
5. the number of optional parameters (the parameters with an argument | ||
count as two) | ||
high_watermark n (default: 50) | ||
start writeback when the number of used blocks reach this | ||
watermark | ||
low_watermark x (default: 45) | ||
stop writeback when the number of used blocks drops below | ||
this watermark | ||
writeback_jobs n (default: unlimited) | ||
limit the number of blocks that are in flight during | ||
writeback. Setting this value reduces writeback | ||
throughput, but it may improve latency of read requests | ||
autocommit_blocks n (default: 64 for pmem, 65536 for ssd) | ||
when the application writes this amount of blocks without | ||
issuing the FLUSH request, the blocks are automatically | ||
commited | ||
autocommit_time ms (default: 1000) | ||
autocommit time in milliseconds. The data is automatically | ||
commited if this time passes and no FLUSH request is | ||
received | ||
fua (by default on) | ||
applicable only to persistent memory - use the FUA flag | ||
when writing data from persistent memory back to the | ||
underlying device | ||
nofua | ||
applicable only to persistent memory - don't use the FUA | ||
flag when writing back data and send the FLUSH request | ||
afterwards | ||
- some underlying devices perform better with fua, some | ||
with nofua. The user should test it | ||
|
||
Status: | ||
1. error indicator - 0 if there was no error, otherwise error number | ||
2. the number of blocks | ||
3. the number of free blocks | ||
4. the number of blocks under writeback | ||
|
||
Messages: | ||
flush | ||
flush the cache device. The message returns successfully | ||
if the cache device was flushed without an error | ||
flush_on_suspend | ||
flush the cache device on next suspend. Use this message | ||
when you are going to remove the cache device. The proper | ||
sequence for removing the cache device is: | ||
1. send the "flush_on_suspend" message | ||
2. load an inactive table with a linear target that maps | ||
to the underlying device | ||
3. suspend the device | ||
4. ask for status and verify that there are no errors | ||
5. resume the device, so that it will use the linear | ||
target | ||
6. the cache device is now inactive and it can be deleted |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.