Thread (42 messages) 42 messages, 5 authors, 2023-12-08

RE: [PATCH v1 1/3] x86/tdx: Check for TDX partitioning during early TDX init

From: "Reshetova, Elena" <elena.reshetova@intel.com>
Date: 2023-12-07 17:37:16
Also in: lkml, stable

quoted
quoted
The TDVMCALLs are related to the I/O path (networking/block io) into the L2
guest, and
quoted
quoted
so they intentionally go straight to L0 and are never injected to L1. L1 is not
involved in that path at all.

Using something different than TDVMCALLs here would lead to additional
traps to L1 and
quoted
quoted
just add latency/complexity.
Looks by default you assume we should use TDX partitioning as "paravisor L1" +
"L0 device I/O emulation".
I don't actually want to impose this model on anyone, but this is the one that
could use some refactoring. I intend to rework these patches to not use a single
"td_partitioning_active" for decisions.
quoted
I think we are lacking background of this usage model and how it works.  For
instance, typically L2 is created by L1, and L1 is responsible for L2's device
I/O emulation.  I don't quite understand how could L0 emulate L2's device I/O?

Can you provide more information?
Let's differentiate between fast and slow I/O. The whole point of the paravisor in
L1 is to provide device emulation for slow I/O: TPM, RTC, NVRAM, IO-APIC, serial
ports.
Out of my curiosity and not really related to this discussion, but could you please
elaborate on RTC part here? Do you actually host secure time in L1 to be provided
to the L2? 

Best Regards,
Elena.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help