On 15/06/18 16:54, Andrew Cooper wrote:
> On 15/06/18 14:26, Juergen Gross wrote:
>> diff --git a/tools/libxc/xc_private.h b/tools/libxc/xc_private.h
>> index 03bc9a7776..18add80232 100644
>> --- a/tools/libxc/xc_private.h
>> +++ b/tools/libxc/xc_private.h
>> @@ -254,9 +254,12 @@ out1:
>>      return ret;
>>  }
>>  
>> -static inline int do_domctl(xc_interface *xch, struct xen_domctl *domctl)
>> +static inline int do_domctl_maybe_retry(xc_interface *xch, struct 
>> xen_domctl *domctl,
>> +                                        unsigned int retries)
> 
> I recommend renaming this do_domctl_retry_efault() to make it explicit
> which error causes a retry.  We've got other a few other adhoc places
> which retry on other errors.

Okay.

> 
>> @@ -281,6 +287,18 @@ static inline int do_domctl(xc_interface *xch, struct 
>> xen_domctl *domctl)
>>      return ret;
>>  }
>>  
>> +static inline int do_domctl(xc_interface *xch, struct xen_domctl *domctl)
>> +{
>> +    return do_domctl_maybe_retry(xch, domctl, 0);
>> +}
>> +
>> +static inline int do_domctl_retry(xc_interface *xch, struct xen_domctl 
>> *domctl)
>> +{
>> +    unsigned int retries = xencall_buffers_never_fault(xch->xcall) ? 0 : 2;
> 
> Probably a very minor issue, but is it worth caching never_fault once
> when opening the xc_interface?  Calling into a separate shared object on
> every domctl isn't the height of efficiency.

Via a global variable or by extending struct xc_interface_core? Ian?


Juergen


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to