Re: Query on KVM exit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09.07.2017 09:39, Ady Wahyudi Paundu wrote:
> Hi all,
> 
> My name is Ady from NAIST Japan.
> Currently I'm trying to learn how KVM work, especially on KVM-exit
> part (where the guest mode handle the control to the Kernel mode/KVM).
> 
> 1) I know that there are about 45 KVM exit reasons. However, I can't
> find any enough information about those exit-reasons on the net. Maybe
> I've been using wrong keywords. Can you give me some pointer on where
> to look? For example, what is PENDING_INTERRUPT reason, and when it is
> called.

You are referring to VMX exit reasons. You should have a look at the VMX
specification contained in the SDM (Intel 64 and IA-32 Architectures
Software Developer's Manual). e.g. "APPENDIX C VMX BASIC EXIT REASONS"
lists all reasons.

> 
> 2) I know that the guest-mode exit to kernel-mode when the guest
> system need to execute 'sensitive' operation. Are there any detail on
> the internet what are those 'sensitive' operations?
> for example, if the guest system execute some hardware API, such as
> clflush (that flush the CPU cache), is it need to be executed in
> kernel mode or it can be executed in guest mode without KVM exit?
> 
The SDM contains a chapter about "CHANGES TO INSTRUCTION BEHAVIOR IN VMX
NON-ROOT OPERATION". Here, it is mentioned, which instructions behave
differently in VMX non-root mode, especially which ones force a VM exit
instead of being executed/interpreted by the HW.

Also, the description of instructions directly contain a comment if
treated specially in VM non-root mode. As I can't find anything special
for clflush, I assume it is executed in non-root kernel/user mode by the HW.

> Thank you in advance for your kind attention.

You really should have a look at the SDM, it should contain everything
you need.

> 
> ~Ady
> 



-- 

Thanks,

David



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux