Ingo Molnar wrote:
> * Avi Kivity <[EMAIL PROTECTED]> wrote:
>
>   
>> 3. The most expensive vmx context switch involves cpu migration:
>>
>> cpu 0:  vmclear vm1 /* decache vmx context into memory */
>> cpu 1:  vmptrld vm1
>>            ... vm register access
>>            vmlaunch
>>     
>
> ah. And you optimize this away if previously-used-CPU == curr-CPU and 
> the vmx context loaded on this CPU is the same as we are trying to run 
> now, right?
>
>   

Yes.  If we changed cpu, we do a ipi vmclear and a vmptrld.  If we just 
changed vm, we only do a vmptrld.  If nothing changed, we do nothing.

>> The vmlaunch instruction, like vmresume, causes a VM entry, but is 
>> documented to be significantly more expensive.  It is required after a 
>> vmclear.
>>
>> Currently, the vmclear is performed by an ipi, because we can only 
>> detect migration after the fact.  However, if we enlist the migration 
>> threads, we can vmclear before the process has left the cpu.
>>     
>
> the most common type of migration isnt even in the migration threads but 
> in simple try_to_wake_up(). And that call often does not run on the CPU 
> that has the VMX state ...
>
> i see no easy solution here - this really parallels all the lazy-FPU 
> problems. Would it really be all that expensive to just save/load the 
> VMX state in switch_to()? 

The Intel documentation explicitly states that a vmlaunch (required 
after flushing the vmx state using a vmclear) is much more expensive 
than a vmresume.  I'd expect the difference to become more important if 
they cache multiple VMs on one core, which seems to be the point of all 
this complexity.

> As SVN has shown it, we can rely on VMX state 
> save/load to become faster in the future. So we definitely shouldnt 
> design for a small-scale overhead in first-generation silicon.
>   

In this case I think the documentation indicates their long term plans.  
However, the only real answer is to measure.

-- 
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to