You are not logged in.

#1 2022-07-30 13:31:16

dubovik
Member
Registered: 2013-04-01
Posts: 5

Nvidia DMA is not working with AMD memory encryption (SME)

So, not sure if this forum is the right place, but I'm also uncertain where upstream I should report this bug, so let me start here.

I'm running Arch, and I have Ryzen 3660, which supports SME. Yesterday, I've tried activating it with the mem_encrypt=on kernel boot option. The system loads fine and dmesg reports that SME is active:

[    0.122077] AMD Memory Encryption Features active: SME

I also have IOMMU enabled in the UEFI, and dmesg reports that it's working. However, if I try to start the Xorg server, it fails with the following error:

[    21.357] (II) NVIDIA: Reserving 24576.00 MB of virtual memory for indirect memory
[    21.357] (II) NVIDIA:     access.
[    24.364] (EE) NVIDIA(GPU-0): Failed to initialize DMA.
[    24.365] (EE) NVIDIA(0): Failed to allocate push buffer

I've tried this with Linux version 5.18.14-arch1-1 and Nvidia 515.57. For Nvidia I've tried both closed sourced and open sources drivers, as well as non-dkms and dkms versions. I've also tried recompiling open source drivers. I always get the same error.

I've found online this earlier post on the gentoo bugzilla: https://bugs.gentoo.org/652408. As far as I read from that post, it's supposed to actually work. I've also glanced at the source code (with open source drivers), and there is a small code section with #ifdef on CONFIG_AMD_MEM_ENCRYPT, which also suggests the code at least intends to work with AMD SME.

Two questions.

Does anyone know if Nvidia drivers are indeed supposed to work with SME?

I that's a yes, I guess I need to submit a bug upstream, but now that the drivers are open sourced, it's a bit unclear where upstream I should best submit it. By Nvidia? Or by kernel developers? (If I look at the #ifdef section of the code, it uses pgprot_decrypted, which seems a function from one of the kernel subsystems, so may be the issue is there.)

Offline

#2 2022-07-30 15:46:26

loqs
Member
Registered: 2014-03-06
Posts: 18,892

Re: Nvidia DMA is not working with AMD memory encryption (SME)

Have you looked at https://lore.kernel.org/all/CAG48ez2Ocf … gmail.com/ also applies to pgprot_decrypted is NV_PGPROT_DECRYPTED_PRESENT defined or undefined?

Offline

#3 2022-07-31 09:37:47

dubovik
Member
Registered: 2013-04-01
Posts: 5

Re: Nvidia DMA is not working with AMD memory encryption (SME)

Thanks for the link about pgprot_decrypted. That kernel change was between 5.17 and 5.18. So, I've tried compiling the drivers against 5.17, but I still get the same error. NV_PGPROT_DECRYPTED_PRESENT seems undefined by default. I've tried defining it and recompiling, but still the same error. I've filed an upstream bug: https://github.com/NVIDIA/open-gpu-kern … issues/340.

Offline

Board footer

Powered by FluxBB