RE: [PATCH v5 06/14] x86/ioremap: Support hypervisor specified range to map as encrypted
From: Michael Kelley (LINUX) <hidden>
Date: 2023-02-16 16:16:26
Also in:
linux-arch, linux-hyperv, linux-iommu, linux-pci, lkml
From: Borislav Petkov <bp@alien8.de> Sent: Thursday, February 16, 2023 5:33 AM
On Fri, Feb 10, 2023 at 11:47:27PM +0000, Sean Christopherson wrote:quoted
I agree with Boris' comment that a one-off "other encrypted range" is a hack, but that's just an API problem. The kernel already has hypervisor specific hooks (and for SEV-ES even), why not expand that? That way figuring out which devices are private is wholly contained in Hyper-V code, at least until there's a generic solution for enumerating private devices, though that seems unlikely to happen and will be a happy problem to solve if it does come about.I feel ya and this all makes sense and your proposals look clean enough to me but we still need some way of determining whether this is a vTOM on hyperv
Historically, callbacks like Sean proposed default to NULL and do nothing unless they are explicitly set. The Hyper-V vTOM code would set the callback. Is that not sufficient? Or in the two places where the callback would be made, do you want to bracket with a test for being in a Hyper-V vTOM VM? If so, then we're back to needing something like CC_ATTR_PARAVISOR on which to gate the callbacks. Or do you mean something else entirely? Michael
because there's the next crapola with https://lore.kernel.org/all/20230209072220.6836-4-jgross@suse.com/ (local) because apparently hyperv does PAT but disables MTRRs for such vTOM SEV-SNP guests and ... madness. But that's not the only example - Xen has been doing this thing too. And Jürgen has been trying to address this in a clean way but it is a pain. What I don't want to have is a gazillion ways to check what needs to happen for which guest type. Because people who change the kernel to run on baremetal, will break them. And I can't blame them. We try to support all kinds of guests in the x86 code but this support should be plain and simple.