xe_gt_sriov...save_consume(9)
π xe_gt_sriov_pf_migration_save_consume π
okay so this is a page from the Kernel API Manual, section 9 β and yes bestie, we're getting into the migration ring lore today π
β¨ NAME β¨
xe_gt_sriov_pf_migration_save_consume β literally just: grab a VF save data packet off the migration ring π no cap, that's the whole vibe.
πΈ SYNOPSIS πΈ
struct xe_sriov_packet * xe_gt_sriov_pf_migration_save_consume (struct xe_gt *gt , unsigned int vfid );
likeβ¦ that's it. two arguments. she's lowkey elegant π
π¦ ARGUMENTS π¦
gtβ thexe_gtπ (yes THE gt, main character energy fr)vfidβ the VF identifier π’ (which virtual function we're talking about, iykyk)
π DESCRIPTION π
So this one gets called by the save migration data consumer β that's userspace, in case you were wondering π β whenever it's processing migration data.
And what does it do?? It queues the save migration data producer (aka the PF SR-IOV Control worker) π·ββοΈ which is potentially just sitting there waiting to add more data when the ring is full π like girl same, we've all been blocked waiting for space.
so yeah: consumer consumes β producer gets queued up β the ring keeps flowing π it's giving teamwork, it's giving pipeline, it's giving slay.
β RETURN β
here's the vibe check on what you get back π
- Pointer to
xe_sriov_packeton success π iconic, we love a win NULLif the ring is empty and there's no more data available π it's done, nothing left, go homeERR_PTR(-EAGAIN)if the ring is empty but data is still being produced π so likeβ¦ empty β done, bestie. come back later, she's still cooking π
ngl that last one is the sneakily important one β don't treat -EAGAIN like a failure, it literally means "more's coming, be patient" π«Ά
π SEE ALSO π
the whole friend group π« go say hi:
- Kernel file
./drivers/gpu/drm/xe/xe_gt_sriov_pf_migration.c xe_gt_sriov_pf_migration_ggtt_save(9)xe_gt_sriov_pf_migration_ggtt_restore(9)xe_gt_sriov_pf_migration_guc_save(9)xe_gt_sriov_pf_migration_guc_restore(9)xe_gt_sriov_pf_migration_mmio_save(9)xe_gt_sriov_pf_migration_mmio_restore(9)xe_gt_sriov_pf_migration_vram_save(9)xe_gt_sriov_pf_migration_vram_restore(9)xe_gt_sriov_pf_migration_size(9)xe_gt_sriov_pf_migration_ring_empty(9)xe_gt_sriov_pf_migration_ring_full(9)xe_gt_sriov_pf_migration_ring_free(9)xe_gt_sriov_pf_migration_save_init(9)xe_gt_sriov_pf_migration_save_data_pending(9)xe_gt_sriov_pf_migration_save_data_complete(9)xe_gt_sriov_pf_migration_save_produce(9)xe_gt_sriov_pf_migration_restore_consume(9)xe_gt_sriov_pf_migration_restore_produce(9)xe_gt_sriov_pf_migration_init(9)
and that's the whole page, bestie π§π
this little beauty lives over in ./drivers/gpu/drm/xe, dated October 2026, and it's part of the Kernel API Manual β that's the source, the version and the date all in one cute lil sign-off πβ¨ mwah, go consume some packets π
π¦ 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