| fb582397 | 22-Jul-2026 |
corwin <corwincoburn@google.com> |
dm vdo indexer: embed geometry in parent structures
Embed struct index_geometry in struct uds_configuration and struct volume directly, eliminating the need to allocate (and free) the geometry separ
dm vdo indexer: embed geometry in parent structures
Embed struct index_geometry in struct uds_configuration and struct volume directly, eliminating the need to allocate (and free) the geometry separately.
Signed-off-by: corwin <corwincoburn@google.com> Signed-off-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
show more ...
|
| fb7415f2 | 28-Apr-2026 |
Bruce Johnston <bjohnsto@redhat.com> |
dm vdo: use GFP_NOIO for blkdev_issue_zeroout on format path
GFP_NOWAIT is inappropriate when blkdev_issue_zeroout may sleep and bio_alloc can fail under pressure; use GFP_NOIO for clear_partition a
dm vdo: use GFP_NOIO for blkdev_issue_zeroout on format path
GFP_NOWAIT is inappropriate when blkdev_issue_zeroout may sleep and bio_alloc can fail under pressure; use GFP_NOIO for clear_partition and vdo_clear_layout zeroout calls.
Signed-off-by: Bruce Johnston <bjohnsto@redhat.com> Signed-off-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Fixes: fc1d43826702 ("dm vdo: save the formatted metadata to disk")
show more ...
|
| fc1d4382 | 24-Mar-2026 |
Bruce Johnston <bjohnsto@redhat.com> |
dm vdo: save the formatted metadata to disk
Add vdo_save_super_block() and vdo_save_geometry_block() to perform asynchronous writes of the super block and geometry block respectively. Add vdo_clear_
dm vdo: save the formatted metadata to disk
Add vdo_save_super_block() and vdo_save_geometry_block() to perform asynchronous writes of the super block and geometry block respectively. Add vdo_clear_layout() to zero the UDS index's first block, the block map partition, and the recovery journal partition.
These operations are driven by new phases in the pre-load state machine (PRE_LOAD_PHASE_FORMAT_*), ensuring that disk writes happen during pre-resume rather than during dmsetup create.
Signed-off-by: Bruce Johnston <bjohnsto@redhat.com> Reviewed-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
show more ...
|
| defce4e0 | 24-Mar-2026 |
Bruce Johnston <bjohnsto@redhat.com> |
dm vdo: add formatting logic and initialization
Add the core formatting logic. The initialization path is updated to read the geometry block (block 0 on the storage device). If the block is entirely
dm vdo: add formatting logic and initialization
Add the core formatting logic. The initialization path is updated to read the geometry block (block 0 on the storage device). If the block is entirely zeroed, the device is treated as unformatted and vdo_format() is called. Otherwise, the existing geometry is parsed and the VDO is loaded as before.
The vdo_format() function initializes the volume geometry and super block, and marks the VDO as needing it's layout saved to disk.
Signed-off-by: Bruce Johnston <bjohnsto@redhat.com> Reviewed-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
show more ...
|
| 9d9c28aa | 24-Mar-2026 |
Bruce Johnston <bjohnsto@redhat.com> |
dm vdo: add synchronous metadata I/O submission helper
Add vdo_submit_metadata_vio_wait(), a synchronous I/O submission helper that blocks until completion. This is needed for I/O during early initi
dm vdo: add synchronous metadata I/O submission helper
Add vdo_submit_metadata_vio_wait(), a synchronous I/O submission helper that blocks until completion. This is needed for I/O during early initialization before work queues are available.
Refactor read_geometry_block() to use it.
Signed-off-by: Bruce Johnston <bjohnsto@redhat.com> Reviewed-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
show more ...
|
| b5d1f45c | 24-Mar-2026 |
Bruce Johnston <bjohnsto@redhat.com> |
dm vdo: add geometry block structure
Introduce a vdo_geometry_block structure, containing a vio and buffer, mirroring the existing vdo_super_block structure. Both are now initialized at VDO startup
dm vdo: add geometry block structure
Introduce a vdo_geometry_block structure, containing a vio and buffer, mirroring the existing vdo_super_block structure. Both are now initialized at VDO startup and freed at shutdown, establishing the infrastructure needed to read and write the geometry block using the same mechanisms as the super block.
Refactor read_geometry_block() to use the new structure.
Signed-off-by: Bruce Johnston <bjohnsto@redhat.com> Reviewed-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
show more ...
|
| 427bf2c1 | 24-Mar-2026 |
Bruce Johnston <bjohnsto@redhat.com> |
dm vdo: add geometry block encoding
Add vdo_encode_volume_geometry() to write the geometry block into a buffer so that it can be written to disk. The corresponding decode path already exists.
Signe
dm vdo: add geometry block encoding
Add vdo_encode_volume_geometry() to write the geometry block into a buffer so that it can be written to disk. The corresponding decode path already exists.
Signed-off-by: Bruce Johnston <bjohnsto@redhat.com> Reviewed-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
show more ...
|
| beced130 | 24-Mar-2026 |
Bruce Johnston <bjohnsto@redhat.com> |
dm vdo: add upfront validation for logical size
Add a validation check that the logical size passed via the table line does not exceed MAXIMUM_VDO_LOGICAL_BLOCKS.
Signed-off-by: Bruce Johnston <bjo
dm vdo: add upfront validation for logical size
Add a validation check that the logical size passed via the table line does not exceed MAXIMUM_VDO_LOGICAL_BLOCKS.
Signed-off-by: Bruce Johnston <bjohnsto@redhat.com> Reviewed-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
show more ...
|
| 2fb98e41 | 24-Mar-2026 |
Bruce Johnston <bjohnsto@redhat.com> |
dm vdo: add formatting parameters to table line
Extend the dm table line with three new optional parameters: indexMemory (UDS index memory size), indexSparse (dense vs sparse index), and slabSize (b
dm vdo: add formatting parameters to table line
Extend the dm table line with three new optional parameters: indexMemory (UDS index memory size), indexSparse (dense vs sparse index), and slabSize (blocks per allocation slab). These values are parsed, validated, and stored in the device configuration for use during formatting.
Rework the slab size constants from the single MAX_VDO_SLAB_BITS into explicit MIN_VDO_SLAB_BLOCKS, MAX_VDO_SLAB_BLOCKS, and DEFAULT_VDO_SLAB_BLOCKS values.
Bump the target version from 9.1.0 to 9.2.0 to reflect this table line change.
Signed-off-by: Bruce Johnston <bjohnsto@redhat.com> Reviewed-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
show more ...
|
| e073bb09 | 24-Mar-2026 |
Bruce Johnston <bjohnsto@redhat.com> |
dm vdo: add super block initialization to encodings.c
Add vdo_initialize_component_states() to populate the super block, computing the space required for the main VDO components on disk. Those inclu
dm vdo: add super block initialization to encodings.c
Add vdo_initialize_component_states() to populate the super block, computing the space required for the main VDO components on disk. Those include the slab depot, block map, and recovery journal.
Signed-off-by: Bruce Johnston <bjohnsto@redhat.com> Reviewed-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
show more ...
|
| 6af58aa3 | 27-Feb-2026 |
Ken Raeburn <raeburn@redhat.com> |
dm vdo: update vdo_allocate_extended to take a field name, no types
All of VDO's "extended" allocations use a flexible array field at the end of the allocated structure. We can infer the struct type
dm vdo: update vdo_allocate_extended to take a field name, no types
All of VDO's "extended" allocations use a flexible array field at the end of the allocated structure. We can infer the struct type from the supplied pointer. Replacing the array field type with the field name lets us use struct_size from overflow.h to compute the size instead of the local __vdo_do_allocation version.
One allocation of bio structures doesn't conform to this pattern, since the removal of bi_inline_vecs; directly compute the total size for that case.
Signed-off-by: Ken Raeburn <raeburn@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
show more ...
|
| b3929b2c | 11-Feb-2026 |
Matthew Sakai <msakai@redhat.com> |
dm vdo slab-depot: validate old zone count on load
Verify the old zone count has a valid value before using it to compute slab summary entry offsets.
Signed-off-by: Matthew Sakai <msakai@redhat.com
dm vdo slab-depot: validate old zone count on load
Verify the old zone count has a valid value before using it to compute slab summary entry offsets.
Signed-off-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
show more ...
|