GUC VGT POLICY KLVS(9)
π GuC VGT Policy KLVs π
Okay so bestie, this page lives in the Kernel API Manual, and it's literally the list of GuC KLV keys available for use with PF2GUC_UPDATE_VGT_POLICY. No cap, every crumb is staying right here. πβ¨
GUC_KLV_VGT_POLICY_SCHED_IF_IDLEβ0x8001[From 70.12.0]- This config lets you update the scheduling priority of the PF and all VFs at once. Setting this policy to
0updates all VFs scheduling priorities toLOW, and setting this policy to1updates all VFs scheduling priorities toNORMAL. Those changes will take effect on the next VF-Switch event. - [Before 70.12.0] This config sets whether strict scheduling is enabled, whereby any VF that doesnβt have work to submit is still allocated a fixed execution time-slice to ensure active VFs execution is always consistent even during other VF
reprovisiong / rebootingevents. Changing this KLV impacts all VFs and takes effect on the next VF-Switch event. - Values:
:0:don't schedule idle (default) Β·:1:schedule if idle
- This config lets you update the scheduling priority of the PF and all VFs at once. Setting this policy to
GUC_KLV_VGT_POLICY_ADVERSE_SAMPLE_PERIODβ0x8002- This config sets the sample period for tracking adverse event counters. A sample period is the period in
millisecsduring which events are counted. This is applicable for all the VFs. - Values:
:0:adverse events are not counted (default) Β·:n:sample period in milliseconds
- This config sets the sample period for tracking adverse event counters. A sample period is the period in
GUC_KLV_VGT_POLICY_ENGINE_GROUP_CONFIGβ0x8004- This config allows the PF to split the engines across scheduling groups. Each group is independently timesliced across VFs, allowing different VFs to be active on the HW at the same time.
- > Important vibe check: when enabling this feature, all engines must be assigned to a group (and only one group), or they will be excluded from scheduling after this KLV is sent.
- To enable the groups, the driver must provide a masks array with
GUC_MAX_ENGINE_CLASSESentries for each group, with each mask indicating which logical instances of that class belong to the group. Therefore, the length of this KLV when enabling groups isnum_groups * GUC_MAX_ENGINE_CLASSES. - To disable the groups, the driver must send the KLV without any payload (i.e.
len = 0). The maximum number of groups is8.
GUC_KLV_VGT_POLICY_RESET_AFTER_VF_SWITCHβ0x8D00- This enum is to reset utilized HW engine after VF Switch (i.e to clean up Stale HW register left behind by previous VF).
- Values:
:0:don't reset (default) Β·:1:reset
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/xe/abi/guc_klvs_abi.h GuC KLV(9)GuC Global Config KLVs(9)GuC Self Config KLVs(9)GuC Opt In Feature KLVs(9)GuC Scheduling Policies KLVs(9)GuC VF Configuration KLVs(9)GuC Reserved KLVs(9)
okay that's the whole tea β β source ./drivers/gpu/drm/xe/abi, October 2026, page GuC VGT Policy KLVs(9). bye bestie, go slay those VGT policies ππ¦
π¦ 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