VF2PF_QUERY_RUNTIME(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… VF2PF_QUERY_RUNTIME πŸ’…

Okay so this is the Kernel API Manual entry for VF2PF_QUERY_RUNTIME(9), and bestie, it's giving relay-message realness. This Relay Message_ is used by the VF to query values of runtime registers. No cap.

On some platforms, VF drivers may not have access to some fuse registers (referred here as 'runtime registers'), so VF drivers need to ask the PF driver to obtain their values. Literally the VF is like β€œhey bestie, what's the value?” and the PF is the one holding the info.

However, the list of such registers, and their values, is fully owned and maintained by the PF driver. The VF driver may only initiate the query sequence and indicate in the START field the starting index of the next requested register from this predefined list. So VF is not out here picking registers, okay? The PF owns that list, periodt.

In the response, the PF driver will return a tuple of the 32-bit register offset and the 32-bit value of that register (respectively REG_OFFSET and REG_VALUE).

The VF driver can use the LIMIT field to limit the number of returned register tuples. If LIMIT is unset, then PF decides about the number of returned register tuples.

This message definition is supported from ABI version 1.0.


πŸŽ€ Request message πŸŽ€

Word 0:

  • Bits 31 β€” ORIGIN = GUC_HXG_ORIGIN_HOST_
  • Bits 30:28 β€” TYPE = GUC_HXG_TYPE_REQUEST_
  • Bits 27:16 β€” DATA0 = **LIMIT** - limit number of returned entries (use zero to not enforce any limits on the response)
  • Bits 15:0 β€” ACTION = GUC_RELAY_ACTION_VF2PF_QUERY_RUNTIME = 0x0101

Word 1:

  • Bits 31:0 β€” DATA1 = **START** - index of the first requested entry

🌸 Response message 🌸

Word 0:

  • Bits 31 β€” ORIGIN = GUC_HXG_ORIGIN_HOST_
  • Bits 30:28 β€” TYPE = GUC_HXG_TYPE_RESPONSE_SUCCESS_
  • Bits 27:0 β€” DATA0 = **COUNT** - number of entries included in response

Response entries:

  • Word 1, bits 31:0 β€” DATA1 = **REMAINING** - number of remaining entries
  • Word 2, bits 31:0 β€” DATA2 = **REG_OFFSET** - offset of register[START]
  • Word 3, bits 31:0 β€” DATA3 = **REG_VALUE** - value of register[START]
  • Word n-1, bits 31:0 β€” REG_OFFSET - offset of register[START + x]
  • Word n, bits 31:0 β€” REG_VALUE - value of register[START + x]

πŸ¦‹ SEE ALSO πŸ¦‹


That's the whole page, bestie πŸ’– β€” source ./drivers/gpu/drm/xe/abi, dated October 2026, all for the VF2PF_QUERY_RUNTIME(9) page in the Kernel API Manual. Slay. βœ¨πŸ‘‘

πŸ“¦ where this page comes from