Messages in this thread | | | Subject | Re: [RFC v2 14/32] x86/tdx: Handle port I/O | From | Dave Hansen <> | Date | Tue, 11 May 2021 08:35:44 -0700 |
| |
On 5/10/21 2:57 PM, Dan Williams wrote: >> Decompression code uses port IO for earlyprintk. We must use >> paravirt calls there too if we want to allow earlyprintk. > What is the tradeoff between teaching the decompression code to handle > #VE (the implied assumption) vs teaching it to avoid #VE with direct > TDVMCALLs (the chosen direction)?
To me, the tradeoff is not just "teaching" the code to handle a #VE, but ensuring that the entire architecture works.
Intentionally invoking a #VE is like making a function call that *MIGHT* recurse on itself. Sure, you can try to come up with a story about bounding the recursion. But, I don't see any semblance of that in this series.
Exception-based recursion is really nasty because it's implicit, not explicit. That's why I'm advocating for a design where the kernel never intentionally causes a #VE: it never intentionally recurses without bounds.
| |