On Thu, Mar 31, 2011 at 06:03:37AM -0400, Avi Kivity wrote:
> On 03/31/2011 11:42 AM, Roedel, Joerg wrote:
> > On Thu, Mar 31, 2011 at 05:18:28AM -0400, Avi Kivity wrote:
> > >  On 03/31/2011 09:14 AM, Roedel, Joerg wrote:
> > >  >  On Mon, Mar 28, 2011 at 08:28:12AM -0400, Avi Kivity wrote:
> > >  >  >   The spec indicates we need to check the TSS and IOPL based 
> > > permissions
> > >  >  >   before the intercept (vmx agrees).  With the code as is, it 
> > > happens
> > >  >  >   afterwards.
> > >  >  >
> > >  >  >   One way to do this is to have an ExtraChecks bit in the 
> > > opcode::flags.
> > >  >  >   Then opcode::u.xcheck->perms() is the pre-intercept check and
> > >  >  >   opcode::u.xcheck->execute() is the post-intercept execution.  
> > > Should
> > >  >  >   work for monitor/mwait/rdtsc(p)/rdpmc/other crap x86 throws at us.
> > >  >
> > >  >  Okay, as you suggested, I put these checks into the instruction 
> > > emulator
> > >  >  and let the hard work of implementing per-arch checks to the 
> > > nested-vmx
> > >  >  people ;)
> > >  >  I doubt that this makes the opcode-tables more readable, but lets see 
> > > :)
> > >
> > >  I think we're miscommunicating.  I'm talking about x86 checks, not virt
> > >  vendor specific checks.
> >
> > The place of the intercept check may be vendor specific. I havn't looked
> > at the Intel spec, though. But there are probably differences.
> 
> That's why there are three hooks: pre-ex, post-ex, post-mem.  If an 
> intercept fits in between, use the pre-ex hook and duplicate the checks 
> in the intercept.
> 
> As far as I recall, everything should fit into those three, though.

Okay, thats the way to go then, thanks.

        Joerg

-- 
AMD Operating System Research Center

Advanced Micro Devices GmbH Einsteinring 24 85609 Dornach
General Managers: Alberto Bozzo, Andrew Bowd
Registration: Dornach, Landkr. Muenchen; Registerger. Muenchen, HRB Nr. 43632

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to