On Thu, 2024-03-07 at 17:11 +0000, Michael Kelley wrote:
Using your patches plus the changes in my comments, I've
done most of the testing described above. The normal
paths work, and when I hack set_memory_encrypted()
to fail, the error paths correctly did not free the memory.
I checked both the ring buffer memory and the additional
vmalloc memory allocated by the netvsc driver and the uio
driver. The memory status can be checked after-the-fact
via /proc/vmmallocinfo and /proc/buddyinfo since these
are mostly large allocations. As expected, the drivers
output their own error messages after the failures to
teardown the GPADLs.
I did not test the vmbus_disconnect() path since that
effectively kills the VM.
I tested in a normal VM, and in an SEV-SNP VM. I didn't
specifically test in a TDX VM, but given that Hyper-V CoCo
guests run with a paravisor, the guest sees the same thing
either way.
Thanks Michael! How would you feel about reposting the patches with
your changes added? I think you have a very good handle on the part of
the problem I understand, and additionally much more familiarity with
these drivers.