On Tue, Apr 26, 2022 at 07:16:16AM +0200, Juergen Gross wrote:
Christoph suggested (rather firmly) this would be the way to go.
Yeah, I saw it but I don't think it is the right way to go.
What happens the next time a guest needs to query the platform
underneath? Misuse these interfaces again?
Because people will see the Xen use and say, hey, look, I will use this
for my funky HV too.
Even worse: what happens if Xen decides to implement SEV/TDX? Then
you're in for a world of fun.
Now, if we want to *extend* the interfaces to have something as generic
as, say, platform_has() and that should be the way for generic kernel
code running in the guest to query the platform capabilities, then sure,
by all means.
This is needed on guest side at a rather hypervisor independent place.
So a capability of some sort seems appropriate.
Another suggestion of mine was to have a callback (or flag) in
struct x86_hyper_runtime for that purpose.
This becomes an issue if the HV is not x86 - then you need a different
method of querying it, which then underneath will call the arch-specific
interface.
I don't know how much of querying guests need to do and how they've been
doing that so far. Depending on the requirements, we probably should
think about a clean design from the get-go instead of homegrown things.
Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature