All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qing He <qing.he@intel.com>
To: Tim Deegan <Tim.Deegan@citrix.com>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [PATCH 10/17] vmx: nest: VMExit handler in L2
Date: Fri, 21 May 2010 00:06:06 +0800	[thread overview]
Message-ID: <20100520160606.GD21538@qhe2-db> (raw)
In-Reply-To: <20100520114414.GQ4164@whitby.uk.xensource.com>

On Thu, 2010-05-20 at 19:44 +0800, Tim Deegan wrote:
> At 10:41 +0100 on 22 Apr (1271932882), Qing He wrote:
> > +
> > +    case VMX_EXIT_REASONS_FAILED_VMENTRY:
> > +    case EXIT_REASON_TRIPLE_FAULT:
> > +    case EXIT_REASON_TASK_SWITCH:
> > +    case EXIT_REASON_IO_INSTRUCTION:
> > +    case EXIT_REASON_CPUID:
> > +    case EXIT_REASON_MSR_READ:
> > +    case EXIT_REASON_MSR_WRITE:
> 
> Aren't these gated on a control bitmap in the L1 VMCS?
> 

cpuid is unconditional
io and msr are controlled through bitmaps, but they are turned
off in the capability reporting

> > +    case EXIT_REASON_HLT:
> > +    case EXIT_REASON_RDTSC:
> > +    case EXIT_REASON_RDPMC:
> > +    case EXIT_REASON_MWAIT_INSTRUCTION:
> > +    case EXIT_REASON_PAUSE_INSTRUCTION:
> > +    case EXIT_REASON_MONITOR_INSTRUCTION:
> > +    case EXIT_REASON_DR_ACCESS:
> > +    case EXIT_REASON_INVLPG:
> > +    {
> > +        int i;
> > +
> > +        /* exit according to guest exec_control */
> > +        ctrl = __get_vvmcs(nest->vvmcs, CPU_BASED_VM_EXEC_CONTROL);
> > +
> > +        for ( i = 0; i < ARRAY_SIZE(control_bit_for_reason); i++ )
> > +            if ( control_bit_for_reason[i].reason == exit_reason )
> > +                break;
> 
> You've already got a switch statement - why not gate these individually
> rather than bundling them together and scanning an array?
> 

Well, they are the `regular' part of exit handling, a bit in the control
bitmap corresponds to their behavior

> > +    if ( nest->vmexit_pending )
> > +        bypass_l0 = 1;
> 
> This variable doesn't seem to do anything useful. 

This is a preparation for those doesn't generate virtual
vmexit but need to bypass normal L0 exit handler
> 
> > +    return bypass_l0;
> > +}
> 
> Cheers,
> 
> Tim.
> 
> -- 
> Tim Deegan <Tim.Deegan@citrix.com>
> Principal Software Engineer, XenServer Engineering
> Citrix Systems UK Ltd.  (Company #02937203, SL9 0BG)

  reply	other threads:[~2010-05-20 16:06 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-22  9:41 [PATCH 00/17][RFC] Nested virtualization for VMX Qing He
2010-04-22  9:41 ` [PATCH 01/17] vmx: nest: fix CR4.VME in update_guest_cr Qing He
2010-05-20  9:26   ` Tim Deegan
2010-05-20  9:36     ` Qing He
2010-04-22  9:41 ` [PATCH 02/17] vmx: nest: rename host_vmcs Qing He
2010-04-22  9:41 ` [PATCH 03/17] vmx: nest: wrapper for control update Qing He
2010-05-20  9:34   ` Tim Deegan
2010-05-20  9:46     ` Qing He
2010-05-20 12:57       ` Keir Fraser
2010-04-22  9:41 ` [PATCH 04/17] vmx: nest: domain and vcpu flags Qing He
2010-05-20  9:37   ` Tim Deegan
2010-05-20  9:51     ` Christoph Egger
2010-05-20  9:54     ` Qing He
2010-05-20 10:55       ` Tim Deegan
2010-05-20 12:53         ` Qing He
2010-05-20 14:06           ` Christoph Egger
2010-04-22  9:41 ` [PATCH 05/17] vmx: nest: nested control structure Qing He
2010-04-22  9:41 ` [PATCH 06/17] vmx: nest: virtual vmcs layout Qing He
2010-04-22  9:41 ` [PATCH 07/17] vmx: nest: handling VMX instruction exits Qing He
2010-05-20 10:53   ` Tim Deegan
2010-05-20 13:28     ` Qing He
2010-04-22  9:41 ` [PATCH 08/17] vmx: nest: L1 <-> L2 context switch Qing He
2010-05-20 11:11   ` Tim Deegan
2010-05-20 13:49     ` Qing He
2010-05-21  9:19       ` Tim Deegan
2010-05-21 10:31         ` Qing He
2010-05-25 15:27           ` Tim Deegan
2010-04-22  9:41 ` [PATCH 09/17] vmx: nest: interrupt Qing He
2010-05-20 11:21   ` Tim Deegan
2010-05-20 15:55     ` Qing He
2010-04-22  9:41 ` [PATCH 10/17] vmx: nest: VMExit handler in L2 Qing He
2010-05-20 11:44   ` Tim Deegan
2010-05-20 16:06     ` Qing He [this message]
2010-05-21  8:42       ` Tim Deegan
2010-05-21 10:35         ` Qing He
2010-05-25 15:34           ` Tim Deegan
2010-04-22  9:41 ` [PATCH 11/17] vmx: nest: L2 tsc Qing He
2010-05-20 11:47   ` Tim Deegan
2010-05-20 16:07     ` Qing He
2010-04-22  9:41 ` [PATCH 12/17] vmx: nest: CR0.TS and #NM Qing He
2010-04-22  9:41 ` [PATCH 13/17] vmx: nest: capability reporting MSRs Qing He
2010-05-20 11:52   ` Tim Deegan
2010-04-22  9:41 ` [PATCH 14/17] vmx: nest: enable virtual VMX Qing He
2010-04-22  9:41 ` [PATCH 15/17] vmx: nest: virtual ept for nested Qing He
2010-05-20 12:21   ` Tim Deegan
2010-05-21 10:24     ` Qing He
2010-05-25 16:02       ` Tim Deegan
2010-04-22  9:41 ` [PATCH 16/17] vmx: nest: hvmtrace " Qing He
2010-04-22  9:41 ` [PATCH 17/17] tools: nest: allow enabling nesting Qing He
2010-04-22 10:15 ` [PATCH 00/17][RFC] Nested virtualization for VMX Christoph Egger
2010-04-23 10:10   ` He, Qing

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=20100520160606.GD21538@qhe2-db \
    --to=qing.he@intel.com \
    --cc=Tim.Deegan@citrix.com \
    --cc=xen-devel@lists.xensource.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.