From: Avi Kivity <avi@redhat.com>
To: "Nadav Har'El" <nyh@il.ibm.com>
Cc: kvm@vger.kernel.org, gleb@redhat.com
Subject: Re: [PATCH 17/30] nVMX: Prepare vmcs02 from vmcs01 and vmcs12
Date: Mon, 09 May 2011 13:12:17 +0300 [thread overview]
Message-ID: <4DC7BE01.80709@redhat.com> (raw)
In-Reply-To: <201105080823.p488Nuj8018238@rice.haifa.ibm.com>
On 05/08/2011 11:23 AM, Nadav Har'El wrote:
> This patch contains code to prepare the VMCS which can be used to actually
> run the L2 guest, vmcs02. prepare_vmcs02 appropriately merges the information
> in vmcs12 (the vmcs that L1 built for L2) and in vmcs01 (our desires for our
> own guests).
> +/*
> + * prepare_vmcs02 is called when the L1 guest hypervisor runs its nested
> + * L2 guest. L1 has a vmcs for L2 (vmcs12), and this function "merges" it
> + * with L0's requirements for its guest (a.k.a. vmsc01), so we can run the L2
> + * guest in a way that will both be appropriate to L1's requests, and our
> + * needs. In addition to modifying the active vmcs (which is vmcs02), this
> + * function also has additional necessary side-effects, like setting various
> + * vcpu->arch fields.
> + */
> +static int prepare_vmcs02(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12)
> +{
<snip>
> + vmcs_write64(VMCS_LINK_POINTER, vmcs12->vmcs_link_pointer);
I think this is wrong - anything having to do with vmcs linking will
need to be emulated, we can't let the cpu see the real value (and even
if we don't emulate, we have to translate addresses like you do for the
apic access page.
> + vmcs_write64(TSC_OFFSET,
> + vmx->nested.vmcs01_tsc_offset + vmcs12->tsc_offset);
This is probably wrong (everything with time is probably wrong), but we
can deal with it (much) later.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
next prev parent reply other threads:[~2011-05-09 10:12 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-08 8:15 [PATCH 0/30] nVMX: Nested VMX, v9 Nadav Har'El
2011-05-08 8:15 ` [PATCH 01/30] nVMX: Add "nested" module option to kvm_intel Nadav Har'El
2011-05-08 8:16 ` [PATCH 02/30] nVMX: Implement VMXON and VMXOFF Nadav Har'El
2011-05-08 8:16 ` [PATCH 03/30] nVMX: Allow setting the VMXE bit in CR4 Nadav Har'El
2011-05-08 8:17 ` [PATCH 04/30] nVMX: Introduce vmcs12: a VMCS structure for L1 Nadav Har'El
2011-05-08 8:17 ` [PATCH 05/30] nVMX: Implement reading and writing of VMX MSRs Nadav Har'El
2011-05-08 8:18 ` [PATCH 06/30] nVMX: Decoding memory operands of VMX instructions Nadav Har'El
2011-05-09 9:47 ` Avi Kivity
2011-05-08 8:18 ` [PATCH 07/30] nVMX: Introduce vmcs02: VMCS used to run L2 Nadav Har'El
2011-05-16 15:30 ` Marcelo Tosatti
2011-05-16 18:32 ` Nadav Har'El
2011-05-17 13:20 ` Marcelo Tosatti
2011-05-08 8:19 ` [PATCH 08/30] nVMX: Fix local_vcpus_link handling Nadav Har'El
2011-05-08 8:19 ` [PATCH 09/30] nVMX: Add VMCS fields to the vmcs12 Nadav Har'El
2011-05-08 8:20 ` [PATCH 10/30] nVMX: Success/failure of VMX instructions Nadav Har'El
2011-05-08 8:20 ` [PATCH 11/30] nVMX: Implement VMCLEAR Nadav Har'El
2011-05-08 8:21 ` [PATCH 12/30] nVMX: Implement VMPTRLD Nadav Har'El
2011-05-16 14:34 ` Marcelo Tosatti
2011-05-16 18:58 ` Nadav Har'El
2011-05-16 19:09 ` Nadav Har'El
2011-05-08 8:21 ` [PATCH 13/30] nVMX: Implement VMPTRST Nadav Har'El
2011-05-08 8:22 ` [PATCH 14/30] nVMX: Implement VMREAD and VMWRITE Nadav Har'El
2011-05-08 8:22 ` [PATCH 15/30] nVMX: Move host-state field setup to a function Nadav Har'El
2011-05-09 9:56 ` Avi Kivity
2011-05-09 10:40 ` Nadav Har'El
2011-05-08 8:23 ` [PATCH 16/30] nVMX: Move control field setup to functions Nadav Har'El
2011-05-08 8:23 ` [PATCH 17/30] nVMX: Prepare vmcs02 from vmcs01 and vmcs12 Nadav Har'El
2011-05-09 10:12 ` Avi Kivity [this message]
2011-05-09 10:27 ` Nadav Har'El
2011-05-09 10:45 ` Avi Kivity
2011-05-08 8:24 ` [PATCH 18/30] nVMX: Implement VMLAUNCH and VMRESUME Nadav Har'El
2011-05-08 8:24 ` [PATCH 19/30] nVMX: No need for handle_vmx_insn function any more Nadav Har'El
2011-05-08 8:25 ` [PATCH 20/30] nVMX: Exiting from L2 to L1 Nadav Har'El
2011-05-09 10:45 ` Avi Kivity
2011-05-08 8:25 ` [PATCH 21/30] nVMX: Deciding if L0 or L1 should handle an L2 exit Nadav Har'El
2011-05-08 8:26 ` [PATCH 22/30] nVMX: Correct handling of interrupt injection Nadav Har'El
2011-05-09 10:57 ` Avi Kivity
2011-05-08 8:27 ` [PATCH 23/30] nVMX: Correct handling of exception injection Nadav Har'El
2011-05-08 8:27 ` [PATCH 24/30] nVMX: Correct handling of idt vectoring info Nadav Har'El
2011-05-09 11:04 ` Avi Kivity
2011-05-08 8:28 ` [PATCH 25/30] nVMX: Handling of CR0 and CR4 modifying instructions Nadav Har'El
2011-05-08 8:28 ` [PATCH 26/30] nVMX: Further fixes for lazy FPU loading Nadav Har'El
2011-05-08 8:29 ` [PATCH 27/30] nVMX: Additional TSC-offset handling Nadav Har'El
2011-05-09 17:27 ` Zachary Amsden
2011-05-08 8:29 ` [PATCH 28/30] nVMX: Add VMX to list of supported cpuid features Nadav Har'El
2011-05-08 8:30 ` [PATCH 29/30] nVMX: Miscellenous small corrections Nadav Har'El
2011-05-08 8:30 ` [PATCH 30/30] nVMX: Documentation Nadav Har'El
2011-05-09 11:18 ` [PATCH 0/30] nVMX: Nested VMX, v9 Avi Kivity
2011-05-09 11:37 ` Nadav Har'El
2011-05-11 8:20 ` Gleb Natapov
2011-05-12 15:42 ` Nadav Har'El
2011-05-12 15:57 ` Gleb Natapov
2011-05-12 16:08 ` Avi Kivity
2011-05-12 16:14 ` Gleb Natapov
2011-05-12 16:31 ` Nadav Har'El
2011-05-12 16:51 ` Gleb Natapov
2011-05-12 17:00 ` Avi Kivity
2011-05-15 23:11 ` Nadav Har'El
2011-05-16 6:38 ` Gleb Natapov
2011-05-16 7:44 ` Nadav Har'El
2011-05-16 7:57 ` Gleb Natapov
2011-05-16 9:50 ` Avi Kivity
2011-05-16 10:20 ` Avi Kivity
2011-05-22 19:32 ` Nadav Har'El
2011-05-23 9:37 ` Joerg Roedel
2011-05-23 9:52 ` Avi Kivity
2011-05-23 13:02 ` Joerg Roedel
2011-05-23 13:08 ` Avi Kivity
2011-05-23 13:40 ` Joerg Roedel
2011-05-23 13:52 ` Avi Kivity
2011-05-23 14:10 ` Nadav Har'El
2011-05-23 14:32 ` Avi Kivity
2011-05-23 14:44 ` Nadav Har'El
2011-05-23 15:23 ` Avi Kivity
2011-05-23 18:06 ` Alexander Graf
2011-05-24 11:09 ` Avi Kivity
2011-05-24 13:07 ` Joerg Roedel
2011-05-23 14:28 ` Joerg Roedel
2011-05-23 14:34 ` Avi Kivity
2011-05-23 14:58 ` Joerg Roedel
2011-05-23 15:19 ` Avi Kivity
2011-05-23 13:18 ` Nadav Har'El
2011-05-12 16:18 ` Avi Kivity
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=4DC7BE01.80709@redhat.com \
--to=avi@redhat.com \
--cc=gleb@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=nyh@il.ibm.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.