GUC RELAY COMMUNICATION(9)
π GuC Relay Communication
okay bestie, welcome to GuC Relay Communication(9) from the Kernel API Manual β section 9 is in the house and we are about to understand the relay situation, no cap. β¨
okay so the communication between Virtual Function (VF) drivers and Physical Function (PF) drivers is based on the GuC firmware acting as a proxy (relay) agent. literally the middleman with main character energy. π«Ά
To communicate with the PF driver, VF's drivers use the VF2GUC_RELAY_TO_PF action. That action takes the Relay Message as opaque payload and requires the relay message identifier (RID) as an additional parameter. The identifier is used by the drivers to match related messages. slay, matching system. π
The GuC forwards this Relay Message and its identifier to the PF driver in the GUC2PF_RELAY_FROM_VF action. This event message additionally contains the identifier of the origin VF (VFID). iconic forwarding behavior, honestly. π¦
Likewise, to communicate with the VF drivers, the PF driver uses the VF2GUC_RELAY_TO_PF action β and yes, bestie, that's the name in this paragraph, I'm keeping it exactly as written β which, in addition to the Relay Message and the relay message identifier (RID), also takes the target VF identifier. π
The GuC uses this target VFID from the message to select where to send the GUC2VF_RELAY_FROM_PF with the embedded Relay Message with response: π
VF GuC PF
| | |
[ ] VF2GUC_RELAY_TO_PF | |
[ ]---------------------------> [ ] |
[ ] { rid, msg } [ ] |
[ ] [ ] GUC2PF_RELAY_FROM_VF |
[ ] [ ]---------------------------> [ ]
[ ] | { VFID, rid, msg } [ ]
[ ] | [ ]
[ ] | PF2GUC_RELAY_TO_VF [ ]
[ ] [ ] <---------------------------[ ]
[ ] [ ] { VFID, rid, reply } |
[ ] GUC2VF_RELAY_FROM_PF [ ] |
[ ] <---------------------------[ ] |
| { rid, reply } | |
| | |
It is also possible that the PF driver will initiate communication with the selected VF driver. The same GuC action messages will be used: πΈ
VF GuC PF
| | |
| | PF2GUC_RELAY_TO_VF [ ]
| [ ] <---------------------------[ ]
| [ ] { VFID, rid, msg } [ ]
| GUC2VF_RELAY_FROM_PF [ ] [ ]
[ ] <---------------------------[ ] [ ]
[ ] { rid, msg } | [ ]
[ ] | [ ]
[ ] VF2GUC_RELAY_TO_PF | [ ]
[ ]---------------------------> [ ] [ ]
| { rid, reply } [ ] [ ]
| [ ] GUC2PF_RELAY_FROM_VF [ ]
| [ ]---------------------------> [ ]
| | { VFID, rid, reply } |
| | |
π SEE ALSO π
Kernel file ./drivers/gpu/drm/xe/abi/guc_relay_communication_abi.h β plus Relay Message(9) and Relay Error Codes(9). Go read them, bestie, they're literally right there. π₯
footer check, because we don't skip the boring parts: source/version is ./drivers/gpu/drm/xe/abi, date is October 2026, and the page is GuC Relay Communication(9). mwah, byeee πβ¨
π¦ 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