| e678900d | 24-Feb-2025 |
Ken Raeburn <[email protected]> |
dm vdo indexer: reorder uds_request to reduce padding
Reorder fields and make uds_request_type and uds_zone_message packed, to squeeze out some space. Use struct_group so the request reset code no l
dm vdo indexer: reorder uds_request to reduce padding
Reorder fields and make uds_request_type and uds_zone_message packed, to squeeze out some space. Use struct_group so the request reset code no longer needs to care about field order.
On x86_64 this reduces the struct size from 144 to 120, which saves 48 kB (about 12%) per VDO hash zone.
Signed-off-by: Ken Raeburn <[email protected]> Signed-off-by: Matthew Sakai <[email protected]> Signed-off-by: Mikulas Patocka <[email protected]>
show more ...
|
| dc8f646c | 19-Feb-2025 |
Ken Raeburn <[email protected]> |
dm vdo: rework processing of loaded refcount byte arrays
Clear provisional refcount values and count free/allocated blocks in one integrated loop. Process 8 aligned bytes at a time instead of every
dm vdo: rework processing of loaded refcount byte arrays
Clear provisional refcount values and count free/allocated blocks in one integrated loop. Process 8 aligned bytes at a time instead of every byte individually.
On an Intel i7-11850H this reduces the CPU time needed to process a loaded refcount block by a factor of about 5-6. On a large system the refcount loading may be the largest factor in device startup time.
Signed-off-by: Ken Raeburn <[email protected]> Signed-off-by: Matthew Sakai <[email protected]> Signed-off-by: Mikulas Patocka <[email protected]>
show more ...
|
| 0ce46f4f | 01-Feb-2025 |
Ken Raeburn <[email protected]> |
dm vdo slab-depot: read refcount blocks in large chunks at load time
At startup, vdo loads all the reference count data before the device reports that it is ready. Using a pool of large metadata vio
dm vdo slab-depot: read refcount blocks in large chunks at load time
At startup, vdo loads all the reference count data before the device reports that it is ready. Using a pool of large metadata vios can improve the startup speed of vdo. The pool of large vios is released after the device is ready.
During normal operation, reference counts are updated 4kB at a time, as before.
Signed-off-by: Ken Raeburn <[email protected]> Signed-off-by: Matthew Sakai <[email protected]> Signed-off-by: Mikulas Patocka <[email protected]>
show more ...
|
| f979da51 | 01-Feb-2025 |
Ken Raeburn <[email protected]> |
dm vdo vio-pool: allow variable-sized metadata vios
With larger-sized metadata vio pools, vdo will sometimes need to issue I/O with a smaller size than the allocated size. Since vio_reset_bio is whe
dm vdo vio-pool: allow variable-sized metadata vios
With larger-sized metadata vio pools, vdo will sometimes need to issue I/O with a smaller size than the allocated size. Since vio_reset_bio is where the bvec array and I/O size are initialized, this reset interface must now specify what I/O size to use.
Signed-off-by: Ken Raeburn <[email protected]> Signed-off-by: Matthew Sakai <[email protected]> Signed-off-by: Mikulas Patocka <[email protected]>
show more ...
|
| 2b515cea | 01-Feb-2025 |
Ken Raeburn <[email protected]> |
dm vdo vio-pool: add a pool pointer to pooled_vio
This allows us to simplify the return_vio_to_pool interface.
Also, we don't need to use vdo_forget on local variables or arguments that are about t
dm vdo vio-pool: add a pool pointer to pooled_vio
This allows us to simplify the return_vio_to_pool interface.
Also, we don't need to use vdo_forget on local variables or arguments that are about to go out of scope anyway.
Signed-off-by: Ken Raeburn <[email protected]> Signed-off-by: Matthew Sakai <[email protected]> Signed-off-by: Mikulas Patocka <[email protected]>
show more ...
|
| d6844302 | 20-Oct-2024 |
Kuan-Wei Chiu <[email protected]> |
dm vdo: update min_heap_callbacks to use default builtin swap
Replace the swp function pointer in the min_heap_callbacks of dm-vdo with NULL, allowing direct usage of the default builtin swap implem
dm vdo: update min_heap_callbacks to use default builtin swap
Replace the swp function pointer in the min_heap_callbacks of dm-vdo with NULL, allowing direct usage of the default builtin swap implementation. This modification simplifies the code and improves performance by removing unnecessary function indirection.
Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Kuan-Wei Chiu <[email protected]> Cc: Adrian Hunter <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Ching-Chun (Jim) Huang <[email protected]> Cc: Coly Li <[email protected]> Cc: Ian Rogers <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Jonathan Corbet <[email protected]> Cc: Kent Overstreet <[email protected]> Cc: "Liang, Kan" <[email protected]> Cc: Mark Rutland <[email protected]> Cc: Matthew Sakai <[email protected]> Cc: Matthew Wilcox (Oracle) <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Peter Zijlstra <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
show more ...
|
| 66cac806 | 18-Sep-2024 |
Matthew Sakai <[email protected]> |
dm vdo: handle unaligned discards correctly
Reset the data_vio properly for each discard block, and delay acknowledgement and cleanup until all discard blocks are complete.
Signed-off-by: Matthew S
dm vdo: handle unaligned discards correctly
Reset the data_vio properly for each discard block, and delay acknowledgement and cleanup until all discard blocks are complete.
Signed-off-by: Matthew Sakai <[email protected]> Signed-off-by: Mikulas Patocka <[email protected]>
show more ...
|
| 9bcd9239 | 14-Sep-2024 |
Shen Lichuan <[email protected]> |
dm vdo indexer: Convert comma to semicolon
To ensure code clarity and prevent potential errors, it's advisable to employ the ';' as a statement separator, except when ',' are intentionally used for
dm vdo indexer: Convert comma to semicolon
To ensure code clarity and prevent potential errors, it's advisable to employ the ';' as a statement separator, except when ',' are intentionally used for specific purposes.
Signed-off-by: Shen Lichuan <[email protected]> Signed-off-by: Mikulas Patocka <[email protected]>
show more ...
|
| 448c4e4e | 30-Jul-2024 |
Susan LeGendre-McGhee <[email protected]> |
dm vdo: force read-only mode for a corrupt recovery journal
Ensure the recovery journal does not attempt recovery when blocks with mismatched metadata versions are detected. This check is performed
dm vdo: force read-only mode for a corrupt recovery journal
Ensure the recovery journal does not attempt recovery when blocks with mismatched metadata versions are detected. This check is performed after determining that the blocks are otherwise valid so that it does not interfere with normal recovery.
Signed-off-by: Susan LeGendre-McGhee <[email protected]> Signed-off-by: Matthew Sakai <[email protected]> Signed-off-by: Mikulas Patocka <[email protected]>
show more ...
|
| f3ff6683 | 19-Jul-2024 |
Susan LeGendre-McGhee <[email protected]> |
dm vdo: abort loading dirty VDO with the old recovery journal format
Abort the load process with status code VDO_UNSUPPORTED_VERSION without forcing read-only mode when a journal block with the old
dm vdo: abort loading dirty VDO with the old recovery journal format
Abort the load process with status code VDO_UNSUPPORTED_VERSION without forcing read-only mode when a journal block with the old format version is detected.
Forcing the VDO volume into read-only mode and thus requiring a read-only rebuild should only be done when absolutely necessary.
Signed-off-by: Susan LeGendre-McGhee <[email protected]> Signed-off-by: Matthew Sakai <[email protected]> Signed-off-by: Mikulas Patocka <[email protected]>
show more ...
|