Ingo Molnar wrote:
> * Avi Kivity <[EMAIL PROTECTED]> wrote:
>
>   
>>>> Where is the vmcall exit handler?
>>>>    
>>>>         
>>> in my tree, have not sent the patch yet - first want to combine it 
>>> with the cr3 feature to have it tested.
>>>  
>>>       
>> I'd like it in the final patch.
>>     
>
> yeah. Right now i have:
>
>  patches/kvm-paravirt-host.patch
>  patches/kvm-paravirt-guest.patch
>  patches/kvm-paravirt-hypercall-host.patch
>  patches/kvm-paravirt-hypercall-guest.patch
>  patches/kvm-paravirt-cr3-cache.patch
>
> this builds and boots fine on VMX, and a test-hypercall is successfully 
> issued. I've attached a tarball of them.
>
> i've changed the details you mentioned (printk loglevels, etc.), and 
> some other detail as well: the ->patch_hypercall() thing now patches in 
> the 'ret' instruction as well. This allowed me to add a -ENOSYS default 
> entry there, to have defined error behavior in case the hypervisor does 
> not patch things.
>
> NOTE: i have not updated the cr3 patch to the hypercall API yet (hence 
> the aliasing bug is not fixed yet), i wanted to get this to you so that 
> we can think about the hypercall API.
>
> Right now what i have is only good to test that the VMCALL instruction 
> works - but the API must look differently. I'd prefer a register-based 
> thing so that i can embedd hypercalls within Linux without having to go 
> to a wrapper function. Right now a "call hypercall_addr" is a 
> regparm-based function entry. I'd like to keep that - but not have a 
> fixed number of parameters but inlines/macros for all parameter 
> combinations: 1, 2, 3, 4, 5 param, picked up automatically via use. I.e. 
> a 2-param call would be:
>
>       hypercall(KVM_cr3_miss, cr3);
>
> a 3-param call would be:
>
>       hypercall(KVM_api_call1, param1, param2);
>
> a 1-param call would be:
>
>       hypercall(KVM_api_call2);
>
> Does this look good to you? I'd like the basic API to be as light as 
> possible.
>
>   

Won't 32-bit and 64-bit pick different registers?

We can work around it (call is_long_mode() when decoding the hypercall), 
but it kind of defeats the purpose of the optimization, no?


-- 
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