BIO FLAGS.(9)
π Bio flags. π
Kernel API Manual Β· section 9 Β· ok bestie sit down, we're talking bio flags
β¨ DESCRIPTION β¨
okay so listen π«Ά β for certain flags set on user bios, if the user bio hasn't been acknowledged yet, then setting those flags on our own bio(s) for that request might legit help the underlying layers better fulfill what the user bio actually needs. That's the whole vibe.
This constant right here contains the aggregate of those flags. VDO strips all the other flags, because those ones convey incorrect information. not me being picky, it's just facts π
β οΈ heads up: these flags are always irrelevant if we've already finished the user bio, because they're only hints about IO importance. periodt. If VDO has finished the user bio, any remaining IO literally doesn't care how important finishing the finished bio was.
ngl, bio.c has the complete list of flags we believe may be set πΈ β the list below explains the action taken with each of those flags VDO could receive:
π¦ the flags, one by one π¦
REQ_SYNCβ passed down if the user bio is not yet completed, since it indicates the user bio completion is required for further work to be done by the issuer. slay, respect the dependency chain β¨REQ_METAβ passed down if the user bio is not yet completed, since it may mean the lower layer treats it as more urgent, similar toREQ_SYNC. highkey same energy πREQ_PRIOβ passed down if the user bio is not yet completed, since it indicates the user bio is important. main character bio fr fr πREQ_NOMERGEβ set only if the incoming bio was split; irrelevant to VDO IO. that's it, that's the whole flag πREQ_IDLEβ set if the incoming bio had more IO quickly following; VDO's IO pattern doesn't match incoming IO, so this flag is incorrect for it. like bestie that's not our vibe πREQ_FUAβ handled separately, and irrelevant to VDO IO otherwise. moved to its own group chat πREQ_RAHEADβ passed down, as, for reads, it indicates trivial importance. low-stakes, still invited πREQ_BACKGROUNDβ not passed down, as VIOs are a limited resource and VDO needs them recycled ASAP to service heavy load, which is the only place whereREQ_BACKGROUNDmight aid in load prioritization. scarce resource behavior, we're gatekeeping π
π SEE ALSO π
Kernel file ./drivers/md/dm-vio/data-vio.c β wait no, it's ./drivers/md/dm-vdo/data-vio.c π§ β plus Introduction(9), and the whole squad:
check_for_drain_complete_locked(9)pack_status(9)set_data_vio_compression_status(9)cancel_data_vio_compression(9)attempt_logical_block_lock(9)launch_data_vio(9)schedule_releases(9)process_release_callback(9)initialize_data_vio(9)make_data_vio_pool(9)free_data_vio_pool(9)vdo_launch_bio(9)drain_data_vio_pool(9)resume_data_vio_pool(9)dump_data_vio_pool(9)release_allocated_lock(9)release_logical_lock(9)finish_cleanup(9)get_data_vio_operation_name(9)data_vio_allocate_data_block(9)release_data_vio_allocation_lock(9)uncompress_data_vio(9)modify_for_partial_write(9)read_block(9)update_block_map(9)read_old_block_mapping(9)pack_compressed_data(9)compress_data_vio(9)launch_compress_data_vio(9)hash_data_vio(9)write_bio_finished(9)acknowledge_write_callback(9)allocate_block(9)handle_allocation_error(9)continue_data_vio_with_block_map_slot(9)
πΈ and that's the page!! πΈ brought to you by the fine people over at ./drivers/md/dm-vdo, dated October 2026 β ily, go read your bios, mwah πβ¨π¦
π¦ 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