- 20 Feb, 2024 40 commits
-
-
Mike Snitzer authored
Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Addresses various sparse warnings like: warning: symbol 'SYMBOL' was not declared. Should it be static? Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Ken Raeburn <raeburn@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Ken Raeburn <raeburn@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Add braces around multi-line while loops and if statements. Also remove excess newlines. Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Chung Chung <cchung@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Remove extra blank line, mark function inline, add missing braces, and fix a typo in a comment. Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Chung Chung <cchung@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Comment typo, whitespace issues, mark function inline. Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Chung Chung <cchung@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Eliminate use of "trim" in favor of "discard" since it reflects the top-level Linux discard primative rather than the ATA specific ditto. Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
No need to increment each UDS_ error code manually (relative to UDS_ERROR_CODE_BASE). Also, remove unused PRP_BLOCK_START and PRP_BLOCK_END. Lastly, UDS_SUCCESS and VDO_SUCCESS are used interchangeably; so best to explicitly set VDO_SUCCESS equal to UDS_SUCCESS. Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
'completion' is more informative name for a 'struct vdo_completion' than 'parent'. Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
The vdo_page_cache's 'vdo' is the same as the block_map's vdo instance, so use that to save 2 extra dereferences. Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
The block_map is passed to initialize_block_map_zone, but the block_map's vdo member is already initialized with the same vdo instance, so just use it. Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Rename 'pages' to 'num_pages' in distribute_page_over_waitq(). Update assert message in validate_completed_page() to model others. Tweak line-wrapping on a comment that was needlessly long. Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Requires moving dm-vdo-target.c into drivers/md/dm-vdo/ This change adds a proper drivers/md/dm-vdo/Makefile and eliminates the abnormal use of patsubst in drivers/md/Makefile -- which was the cause of at least one build failure that was reported by the upstream build bot. Also, split out VDO's drivers/md/dm-vdo/Kconfig and include it from drivers/md/Kconfig Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
dm_kcopyd_client_create() returns an ERR_PTR so its return must be checked with IS_ERR(). Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Chung Chung <cchung@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Bruce Johnston authored
Reviewed-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Bruce Johnston <bjohnsto@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-
Bruce Johnston authored
Reviewed-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Bruce Johnston <bjohnsto@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-
Bruce Johnston authored
Use get_unaligned_le64() on the hash lock's record name to serve as the key to use with the int hash-map. Switching to using int hash-map removes the only consumer of pointer hash-map, as such it is removed. Reviewed-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Bruce Johnston <bjohnsto@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-
Mike Snitzer authored
Rename vdo_waitq_dequeue_next_waiter to vdo_waitq_dequeue_waiter. The "next" aspect of returned waiter is implied. "next" also isn't informative ("oldest" would be). Removing "next_" adds symmetry to vdo_waitq_enqueue_waiter(). Also fix whitespace and comments from previous waitq commit. Reviewed-by:
Ken Raeburn <raeburn@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Rather than incrementally dequeue from the zone->flush_waiters vdo_wait_queue, simply re-initialize it. Reviewed-by:
Ken Raeburn <raeburn@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Remove temporary 'matched_waiters' waitq and just enqueue matched waiters directly to the caller provided 'matched_waitq'. Reviewed-by:
Ken Raeburn <raeburn@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Reviewed-by:
Ken Raeburn <raeburn@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Rename various interfaces and structs associated with vdo's wait-queue, e.g.: s/wait_queue/vdo_wait_queue/, s/waiter/vdo_waiter/, etc. Now all function names start with "vdo_waitq_" or "vdo_waiter_". Reviewed-by:
Ken Raeburn <raeburn@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Rename process_vio_io() to vdo_submit_vio(), and process_data_vio_io() to submit_data_vio(). Reviewed-by:
Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Rename submit_data_vio_io() to vdo_submit_data_vio(). Reviewed-by:
Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Rename submit_flush_vio() to vdo_submit_flush_vio(). Reviewed-by:
Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Rename submit_metadata_vio() to vdo_submit_metadata_vio(). Reviewed-by:
Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Mike Snitzer authored
Just open-code access to bio's sector. Reviewed-by:
Susan LeGendre-McGhee <slegendr@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org> Signed-off-by:
Matthew Sakai <msakai@redhat.com>
-
Matthew Sakai authored
Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-
Matthew Sakai authored
dm-vdo targets are not supported for 32-bit configurations. A vdo target typically requires 1 to 1.5 GB of memory at any given time, which is likely a large fraction of the addressable memory of a 32-bit system. At the same time, the amount of addressable storage attached to a 32-bit system may not be large enough for deduplication to provide much benefit. Because of these concerns, 32-bit platforms are deemed unlikely to benefit from using a vdo target, so dm-vdo is targeted only at 64-bit platforms. Co-developed-by:
J. corwin Coburn <corwin@hurlbutnet.net> Signed-off-by:
J. corwin Coburn <corwin@hurlbutnet.net> Co-developed-by:
John Wiele <jwiele@redhat.com> Signed-off-by:
John Wiele <jwiele@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-
Matthew Sakai authored
This adds the dm-vdo target. The dm-vdo target provides inline deduplication, compression, and zero-block elimination, allowing applications to consume less actual storage than a normal target. By layering it with other device mapper targets, it can add these features to any storage stack. It can also provide a common deduplication pool for groups of targets. The vdo target does not protect against data corruption, relying instead on integrity protection of the storage below it. Co-developed-by:
J. corwin Coburn <corwin@hurlbutnet.net> Signed-off-by:
J. corwin Coburn <corwin@hurlbutnet.net> Co-developed-by:
Michael Sclafani <dm-devel@lists.linux.dev> Signed-off-by:
Michael Sclafani <dm-devel@lists.linux.dev> Co-developed-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Co-developed-by:
Bruce Johnston <bjohnsto@redhat.com> Signed-off-by:
Bruce Johnston <bjohnsto@redhat.com> Co-developed-by:
Ken Raeburn <raeburn@redhat.com> Signed-off-by:
Ken Raeburn <raeburn@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-
Matthew Sakai authored
Add support for dumping detailed vdo state to the kernel log via a dmsetup message. The dump code is not thread-safe and is generally intended for use only when the vdo is hung. Co-developed-by:
J. corwin Coburn <corwin@hurlbutnet.net> Signed-off-by:
J. corwin Coburn <corwin@hurlbutnet.net> Co-developed-by:
Michael Sclafani <dm-devel@lists.linux.dev> Signed-off-by:
Michael Sclafani <dm-devel@lists.linux.dev> Co-developed-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Co-developed-by:
Bruce Johnston <bjohnsto@redhat.com> Signed-off-by:
Bruce Johnston <bjohnsto@redhat.com> Co-developed-by:
Ken Raeburn <raeburn@redhat.com> Signed-off-by:
Ken Raeburn <raeburn@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-
Matthew Sakai authored
Add data and methods setting run time parameters via sysfs, and to make state and statistics information available through sysfs. Co-developed-by:
J. corwin Coburn <corwin@hurlbutnet.net> Signed-off-by:
J. corwin Coburn <corwin@hurlbutnet.net> Co-developed-by:
Michael Sclafani <dm-devel@lists.linux.dev> Signed-off-by:
Michael Sclafani <dm-devel@lists.linux.dev> Co-developed-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Co-developed-by:
Bruce Johnston <bjohnsto@redhat.com> Signed-off-by:
Bruce Johnston <bjohnsto@redhat.com> Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-
Matthew Sakai authored
Add data and methods to report statisics. Co-developed-by:
J. corwin Coburn <corwin@hurlbutnet.net> Signed-off-by:
J. corwin Coburn <corwin@hurlbutnet.net> Co-developed-by:
Michael Sclafani <dm-devel@lists.linux.dev> Signed-off-by:
Michael Sclafani <dm-devel@lists.linux.dev> Co-developed-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-
Matthew Sakai authored
Add data and methods for marshalling and unmarshalling the persistent metadata. Co-developed-by:
J. corwin Coburn <corwin@hurlbutnet.net> Signed-off-by:
J. corwin Coburn <corwin@hurlbutnet.net> Co-developed-by:
Michael Sclafani <dm-devel@lists.linux.dev> Signed-off-by:
Michael Sclafani <dm-devel@lists.linux.dev> Co-developed-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-
Matthew Sakai authored
Add the data and methods that manage the dm-vdo target itself. This includes the overall state of the target and its threads, the state of the logical volumes, startup, shutdown, and statistics. Co-developed-by:
J. corwin Coburn <corwin@hurlbutnet.net> Signed-off-by:
J. corwin Coburn <corwin@hurlbutnet.net> Co-developed-by:
Michael Sclafani <dm-devel@lists.linux.dev> Signed-off-by:
Michael Sclafani <dm-devel@lists.linux.dev> Co-developed-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-
Matthew Sakai authored
When a vdo is restarted after a crash, it will automatically attempt to recover from its journals. If a vdo encounters an unrecoverable error, it will enter read-only mode. This mode indicates that some previously acknowledged data may have been lost. The vdo may be instructed to rebuild as best it can in order to return to a writable state. Although some data may be lost, this process will ensure that the vdo's own metadata is self-consistent. Co-developed-by:
J. corwin Coburn <corwin@hurlbutnet.net> Signed-off-by:
J. corwin Coburn <corwin@hurlbutnet.net> Co-developed-by:
Michael Sclafani <dm-devel@lists.linux.dev> Signed-off-by:
Michael Sclafani <dm-devel@lists.linux.dev> Co-developed-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by:
Sweet Tea Dorminy <sweettea-kernel@dorminy.me> Signed-off-by:
Matthew Sakai <msakai@redhat.com> Signed-off-by:
Mike Snitzer <snitzer@kernel.org>
-