Anthony Liguori wrote:
> Cameron Macdonell wrote:
>> Hi,
>>
>> I'm trying to understand guest virtualization at the lower levels.  I  
>> have a somewhat basic question:  How does KVM virtualize an int80  
>> instruction from a guest?  A pointer to an answer is just as good as  
>> an answer itself.
>>   
> 
> The same thing happens as it does on normal hardware.
> 
> The way VT/SVM works (at a high level), is that certain instructions and 
> events check a special area called the VMCS/VMCB to determine whether 
> the event should generate a vmexit which is really just a special type 
> of trap.
>

Thanks Anthony.  Does an int80 from an application in the guest always 
cause a vmexit (in kvm's case at least)?

Thanks,
Cam

> There are no hooks for interrupts 32-255 so the hardware operates as it 
> normally would.  If you're interested in getting a trap for int80 within 
> KVM, you'll have to trap sidt/lidt and virtualize the IDT.  You'll need 
> to setup a fake IDT and have the int80 handler do a hypercall.  This is 
> complicated if the guest is using a fast-syscall mechanism.  It may be a 
> little challenging finding a piece of guest memory to take over that has 
> a valid virtual mapping.  To solve this in the general case, you'll need 
> to have the guest be aware of a memory hole.  If you can limit yourself 
> to things like Linux and Windows, you can probably just rely on some 
> memory within the BIOS area (both Linux and Windows always have valid 
> mappings of the BIOS memory).
> 
> If you need to enforce that int80s go to you, you'll need to 
> write-protect this memory too.
> 
> Regards,
> 
> Anthony Liguori
> 
>> Thanks,
>> Cam
>>
>>
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by: Microsoft
>> Defy all challenges. Microsoft(R) Visual Studio 2005.
>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> _______________________________________________
>> kvm-devel mailing list
>> kvm-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/kvm-devel
>>
>>   

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to