You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Querying these debug registers via hypercall is expensive on this exit. We should not do the hypercall if not required. I think they're shared registers between L1 and L2, but need to confirm via spec / only do this if gdb-stub is enabled?
Dr0-3 should be marked as vtl-shared already, and so should be going to the kernel. Dr6 wasn't marked shared until just the other day, but it should be going through the kernel on tdx now too. See is_kernel_managed and is_vtl_shared_reg
I'm not even sure the hypervisor can set anything unless the hardware debug flag is set for the TD, right? Otherwise the hypervisor shouldn't be able to mess with any state?
My concern is that we have paths that will call into the hypervisor to access random registers. Whether the hypervisor can actually do anything on writes, it can return arbitrary data for reads.
We should never be querying lower VTL registers from the hypervisor with CVM. That code should be blocked.
Querying these debug registers via hypercall is expensive on this exit. We should not do the hypercall if not required. I think they're shared registers between L1 and L2, but need to confirm via spec / only do this if gdb-stub is enabled?
Specifically this call:
The text was updated successfully, but these errors were encountered: