NVSwitch attestation from inside a TDX guest (8x H100 HGX, Protected PCIe): nvattest 1.2.0 fails with NSCQ_RC_WARNING: RDT init failure (Code 1)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 323
- Forks
- 61
- PR merge metrics
- No merged PRs in 30d
Description
Environment
- Tenant guest: Intel TDX Confidential VM, Ubuntu 24.04 (
ubuntu-24-04-lts-595image),/dev/tdx_guestpresent - Node: 8x H100 HGX (Hopper), Multi-GPU Mode = Protected PCIe, four LS10 NVSwitches visible in the guest (
[10de:22a3],/dev/nvidia-nvswitch0to3) - Driver 595.71.05,
nvattest1.2.0 (apt package),libnvidia-nscq615.71.09 (installed by hand, absent from the image) - Python SDK
nv-attestation-sdk: the eight GPUs attest fine withppcie_mode=False(NRAS token, 10 September 2026); switch evidence is rejected witherrorCode 4005 INVALID_EVIDENCE
What happens
From inside the TDX guest, nvattest attest --device nvswitch cannot open an NSCQ session:
[switch/nscq_client.cpp:195] Failed to create NSCQ session: NSCQ_RC_WARNING: RDT init failure (Code 1)
[switch/evidence.cpp:178] Failed to initialize NSCQ
Error 600: NSCQ Initialization Failed
The switches are present on the bus and their device nodes exist in the guest, so the blocker is the NSCQ session itself, not device visibility. The infrastructure operator reports that the same command works on their 8x H200 nodes when run on the host.
Question
In Protected PCIe mode, is NVSwitch attestation expected to be host-side only (the tenant cannot obtain switch evidence from inside a TDX guest), or is there a guest-side prerequisite we are missing (NSCQ requiring a capability the guest driver does not expose, a fabric manager dependency, an image requirement)?
If it is host-side only, it would help tenants to have that stated in the PPCIe documentation, since the practical consequence is that the NVLink fabric of an 8-GPU node is not verifiable by the tenant even when all eight GPUs are.
Reproducible evidence
Raw logs, nvidia-smi output, the verifier run and the SDK run are published as dated bundles (CC BY 4.0):
https://github.com/Jabsama/confidential-gpu-attestation-evidence (folder nvswitch-2026-09-16, and ppcie-8x-h100-2026-09-10 for the successful GPU attestation on the same node type).
Related forum thread: https://forums.developer.nvidia.com/t/383536
Happy to run any additional command inside the guest if that helps.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with nvattest attest --device nvswitch and compare the published nvswitch-2026-09-16 logs with the successful GPU attestation bundle and host-side H200 behavior. Determine whether Protected PCIe NVSwitch evidence is supported in a TDX guest or requires a guest prerequisite; done means the supported execution context or missing requirement is confirmed and PPCIe documentation can state the tenant-visible limitation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, python, ubuntu
- Domain
- infrastructure, operating-systems, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100