BLOCK MAP ERAS(9)
π Block map eras(9) π
okay so bestie, welcome to Block map eras(9) from the Kernel API Manual β section 9, kernel API vibes, very βI read source code for funβ energy β¨
The block map era, or maximum age, is used as follows:
Each block map page, when dirty, records the earliest recovery journal block sequence number of the changes reflected in that dirty block. Sequence numbers get classified into eras: every maximum_age sequence numbers, we switch to a new era. Block map pages are assigned to eras according to the sequence number they record. no cap, thatβs the whole assignment system π
In the current (newest) era, block map pages are not written unless there is cache pressure. In the next oldest era, each time a new journal block is written, 1/maximum_age of the pages in this era are issued for write. In all older eras, pages are issued for write immediately. π¦
bestie tl;dr: newest era = chill unless cache pressure shows up; next oldest = little trickle writes; older eras = write immediately, periodt π
π SEE ALSO π
Kernel file ./drivers/md/dm-vdo/block-map.c
initialize_info(9)allocate_cache_components(9)assert_on_cache_thread(9)get_page_state_name(9)update_counter(9)set_info_state(9)find_free_page(9)find_page(9)select_lru_page(9)complete_with_page(9)complete_waiter_with_error(9)complete_waiter_with_page(9)distribute_page_over_waitq(9)set_persistent_error(9)validate_completed_page(9)handle_load_error(9)page_is_loaded(9)handle_rebuild_read_error(9)launch_page_load(9)schedule_page_save(9)launch_page_save(9)completion_needs_page(9)allocate_free_page(9)discard_a_page(9)discard_page_if_needed(9)write_has_finished(9)handle_page_write_error(9)page_is_written_out(9)write_pages(9)vdo_release_page_completion(9)vdo_get_page(9)vdo_request_page_write(9)vdo_get_cached_page(9)vdo_invalidate_page_cache(9)get_tree_page_by_index(9)in_cyclic_range(9)is_not_older(9)add_to_dirty_lists(9)vdo_find_block_map_slot(9)make_forest(9)replace_forest(9)finish_cursor(9)continue_traversal(9)finish_traversal_load(9)traverse(9)launch_cursor(9)compute_boundary(9)vdo_traverse_forest(9)initialize_block_map_zone(9)clear_mapped_location(9)set_mapped_location(9)
thatβs the whole page, bestie β signed from ./drivers/md/dm-vdo, dated October 2026 π
β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms