[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CXD5HJ5LQMTE.11XP9UB9IL8LY@amazon.com>
Date: Fri, 1 Dec 2023 16:50:33 +0000
From: Nicolas Saenz Julienne <nsaenz@...zon.com>
To: Sean Christopherson <seanjc@...gle.com>
CC: Maxim Levitsky <mlevitsk@...hat.com>, <kvm@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-hyperv@...r.kernel.org>,
<pbonzini@...hat.com>, <vkuznets@...hat.com>, <anelkz@...zon.com>,
<graf@...zon.com>, <dwmw@...zon.co.uk>, <jgowans@...zon.com>,
<kys@...rosoft.com>, <haiyangz@...rosoft.com>,
<decui@...rosoft.com>, <x86@...nel.org>,
<linux-doc@...r.kernel.org>
Subject: Re: [RFC 05/33] KVM: x86: hyper-v: Introduce VTL call/return prologues in
hypercall page
On Fri Dec 1, 2023 at 4:32 PM UTC, Sean Christopherson wrote:
> On Fri, Dec 01, 2023, Nicolas Saenz Julienne wrote:
> > > To support this I think that we can add a userspace msr filter on the HV_X64_MSR_HYPERCALL,
> > > although I am not 100% sure if a userspace msr filter overrides the in-kernel msr handling.
> >
> > I thought about it at the time. It's not that simple though, we should
> > still let KVM set the hypercall bytecode, and other quirks like the Xen
> > one.
>
> Yeah, that Xen quirk is quite the killer.
>
> Can you provide pseudo-assembly for what the final page is supposed to look like?
> I'm struggling mightily to understand what this is actually trying to do.
I'll make it as simple as possible (diregard 32bit support and that xen
exists):
vmcall <- Offset 0, regular Hyper-V hypercalls enter here
ret
mov rax,rcx <- VTL call hypercall enters here
mov rcx,0x11
vmcall
ret
mov rax,rcx <- VTL return hypercall enters here
mov rcx,0x12
vmcall
ret
rcx needs to be saved as it contains a "VTL call control input to the
hypervisor" (TLFS 15.6.1). I don't remember seeing it being used in
practice. Then, KVM expects the hypercall code in rcx, hence the
0x11/0x12 mov.
Nicolas
Powered by blists - more mailing lists