THE VF STATE MACHINE(9)
π The VF state machine
okay so welcome to The VF state machine(9) from the Kernel API Manual β yes bestie, we are doing state-machine lore today and itβs genuinely iconic π
the simplified VF state machine can be drawn like this, no cap:
pause--------------------------o
/ |
/ v
(READY)<------------------resume-----(PAUSED)
^ / /
| / /
| stop---->(STOPPED)<----stop /
| / /
| / /
o--------<-----flr /
/
o------<--------------------flr
where the cast is:
READYβ a state where the VF is fully operable. main character energy, everything works β¨PAUSEDβ a state where VF activity is temporarily suspended. itβs on a little break, not gone πSTOPPEDβ a state where VF activity is definitely halted. like fully logged off, periodt.pauseβ a request to temporarily suspend VF activity.resumeβ a request to resume VF activity.stopβ a request to definitely halt VF activity.flrβ a request to perform VF FLR to restore VF activity. yes thatβs the whole vibe π¦
but bestie, each state transition is not just a little walk in the park β it requires extra steps that involve communication with GuC, and those steps might fail or be interrupted by other requests. so hereβs the WIP diagram, and itβs giving very intricate:
.................................WIP....
: :
pause--------------------->PAUSE_WIP----------------------------o
/ : / : |
/ : o----<---stop flr--o : |
/ : | / | : V
(READY,RESUMED)<--------+------------RESUME_WIP<----+--<-----resume--(PAUSED)
^ : | | : / /
| : | | : / /
| : | | : / /
| : o----<----------------------+--<-------stop /
| : | | : /
| : V | : /
| stop----->STOP_WIP---------flr--->-----o : /
| : | | : /
| : | V : /
| flr--------+----->----------------->FLR_WIP<-----flr
| : | / ^ :
| : | / | :
o--------<-------:----+-----<----------------o | :
: | | :
:....|...........................|.....:
| |
V |
(STOPPED)--------------------flr
for details about each internal WIP state machine, see:
The VF PAUSE state machine_The VF RESUME state machine_The VF STOP state machine_The VF FLR state machine_
π SEE ALSO
Kernel file ./drivers/gpu/drm/xe/xe_gt_sriov_pf_control.c β yes, thatβs the file, bestie π«Ά
The VF PAUSE state machine(9)xe_gt_sriov_pf_control_pause_vf(9)The VF RESUME state machine(9)xe_gt_sriov_pf_control_resume_vf(9)The VF SAVE state machine(9)xe_gt_sriov_pf_control_check_save_data_done(9)xe_gt_sriov_pf_control_check_save_failed(9)xe_gt_sriov_pf_control_process_save_data(9)xe_gt_sriov_pf_control_trigger_save_vf(9)xe_gt_sriov_pf_control_finish_save_vf(9)The VF RESTORE state machine(9)xe_gt_sriov_pf_control_check_restore_failed(9)xe_gt_sriov_pf_control_restore_data_done(9)xe_gt_sriov_pf_control_process_restore_data(9)xe_gt_sriov_pf_control_trigger_restore_vf(9)xe_gt_sriov_pf_control_finish_restore_vf(9)The VF STOP state machine(9)xe_gt_sriov_pf_control_stop_vf(9)The VF FLR state machine(9)xe_gt_sriov_pf_control_prepare_flr(9)xe_gt_sriov_pf_control_trigger_flr(9)xe_gt_sriov_pf_control_sync_flr(9)xe_gt_sriov_pf_control_wait_flr(9)The VF FLR Flow with GuC(9)xe_gt_sriov_pf_control_process_guc2pf(9)xe_gt_sriov_pf_control_init(9)xe_gt_sriov_pf_control_restart(9)
okay thatβs the whole page, bestie π final footer vibe: source/version ./drivers/gpu/drm/xe, date October 2026, and the page title is The VF state machine(9). periodt β¨
π¦ 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