Subject: Re: [PATCH 2/4] kvmppc: add hypercall infrastructure - guest part

From: Christian Ehrhardt <[email-masked]>
Date: Wed, 20 Aug 2008 14:41:25 +0200

Arnd Bergmann wrote:
> On Tuesday 19 August 2008, [email-masked] wrote:
>   
>> +static inline long kvm_hypercall1(unsigned int nr, unsigned long p1)
>> +{
>> +       register unsigned long hcall asm ("r0") = nr;
>> +       register unsigned long arg1 asm ("r3") = p1;
>> +       register long ret asm ("r11");
>> +
>> +       asm volatile(".long %1"
>> +                       : "=r"(ret)
>> +                       : "i"(KVM_HYPERCALL_BIN), "r"(hcall), "r"(arg1)
>> +                       : "r4", "r5", "r6", "r7", "r8",
>> +                         "r9", "r10", "r12", "cc");
>> +       return ret;
>> +}
>>     
>
> What is the reasoning for making the calling convention different from
> all the existing hcall interfaces here?
>
> pseries uses r3 for the hcall number, lv1 and beat use r11, so using
> r0 just for the sake of being different seems counterintuitive.
>
> 	Arnd <><
>   
Some documentation is here 
http://kvm.qumranet.com/kvmwiki/PowerPC_Hypercall_ABI
As far as I remember it was oriented on system calls, from my point we 
can still change it atm.
When we discussed about that I was too new to the power architecture to 
really get all the details, but I assume Hollis and Jimi can answer you 
that.

-- 

Grüsse / regards, 
Christian Ehrhardt
IBM Linux Technology Center, Open Virtualization