From: Jan Kiszka <jan.kiszka@web.de>
To: Bandan Das <bsd@redhat.com>
Cc: kvm@vger.kernel.org, Paolo Bonzini <pbonzini@redhat.com>,
Gleb Natapov <gleb@kernel.org>
Subject: Re: [PATCH 3/3] KVM: nVMX: check for null vmcs12 when L1 does invept
Date: Sun, 23 Mar 2014 20:16:50 +0100 [thread overview]
Message-ID: <532F3322.7060404@web.de> (raw)
In-Reply-To: <jpgtxaqi3pc.fsf@nelium.bos.redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2215 bytes --]
On 2014-03-22 17:43, Bandan Das wrote:
> Jan Kiszka <jan.kiszka@web.de> writes:
>
>> On 2014-03-20 21:58, Bandan Das wrote:
>>> Jan Kiszka <jan.kiszka@siemens.com> writes:
>>>
>>>> On 2014-03-20 04:28, Bandan Das wrote:
>>>>> Some L1 hypervisors such as Xen seem to be calling invept after
>>>>> vmclear or before vmptrld on L2. In this case, proceed with
>>>>> falling through and syncing roots as a case where
>>>>> context wide invalidation can't be supported
>>>>
>>>> Can we also base this behaviour on a statement in the SDM? But on first
>>>> glance, I do not find anything like this over there.
>>>
>>> The SDM has nothing of this sort explicitly mentioned but 28.3.3.1
>>> "Operations that invalidate Cached Mappings" does mention that
>>> the instruction may invalidate mappings associated with other
>>> EP4TAs (even in single context).
>>
>> Yes, "may". So we are implementing undefined behavior in order to please
>> a broken hypervisor that relies on it? Then please state this in the
>> patch and probably also inform Xen about their issue.
>
> Why undefined behavior ? We don't do anything specific for
> the single context invalidation case ianyway .e If the eptp matches what
> vmcs12 has, single context invalidation does fall though to the global
> invalidation case already. All this change does is add the "L1 calls
> invept after vmclear and before vmptrld" to the list of cases to fall
> though to global invalidation since nvmx doesn't have any knowledge of
> the current eptp for this case.
OK, I think I misunderstood what the guest expects and how we currently
achieve this: we do not track the mapping between guest and host eptp,
thus cannot properly emulate its behaviour. We therefore need to flush
everything.
>
> Or do you think we should rethink this approach ?
Well, I wonder if we should expose single-context invept support at all.
I'm also wondering if we are returning proper flags on
if ((operand.eptp & eptp_mask) !=
(nested_ept_get_cr3(vcpu) & eptp_mask))
break;
Neither nested_vmx_succeed nor nested_vmx_fail* is called if this
condition evaluates to true.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]
next prev parent reply other threads:[~2014-03-23 19:16 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-20 3:28 [PATCH 0/3] nVMX: Fixes to run Xen as L1 Bandan Das
2014-03-20 3:28 ` [PATCH 1/3] KVM: nVMX: Advertise support for interrupt acknowledgement Bandan Das
2014-03-20 8:30 ` Jan Kiszka
2014-03-20 20:45 ` Bandan Das
2014-03-20 3:28 ` [PATCH 2/3] KVM: nVMX: Ack and write vector info to intr_info if L1 asks us to Bandan Das
2014-03-20 9:13 ` Jan Kiszka
2014-03-20 20:46 ` Bandan Das
2014-03-20 3:28 ` [PATCH 3/3] KVM: nVMX: check for null vmcs12 when L1 does invept Bandan Das
2014-03-20 9:34 ` Jan Kiszka
2014-03-20 20:58 ` Bandan Das
2014-03-22 11:38 ` Jan Kiszka
2014-03-22 16:43 ` Bandan Das
2014-03-23 19:16 ` Jan Kiszka [this message]
2014-03-26 20:22 ` Bandan Das
2014-03-27 9:03 ` Jan Kiszka
2014-03-27 22:14 ` Bandan Das
2014-03-20 12:43 ` Paolo Bonzini
2014-03-20 20:58 ` Bandan Das
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=532F3322.7060404@web.de \
--to=jan.kiszka@web.de \
--cc=bsd@redhat.com \
--cc=gleb@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.