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

Re: [Xen-devel] [PATCH] xen: make sure that likely and unlikely convert the expression to a boolean



>>> On 07.04.14 at 14:42, <Ian.Campbell@xxxxxxxxxx> wrote:
> On Mon, 2014-04-07 at 13:36 +0100, Jan Beulich wrote:
>> >>> On 07.04.14 at 13:07, <ian.campbell@xxxxxxxxxx> wrote:
>> > According to http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html 
>> > __builtin_expect has the prototype:
>> >     long __builtin_expect (long exp, long c)
>> > 
>> > If sizeof(exp) > sizeof(long) then this will effectively mask off the top 
> bits
>> > of exp, meaning that the if in "if (unlikey(x))" will see the masked 
> version,
>> > which might be false when true was expected, likely has the same issue.
>> > 
>> > With the x86_32 hypervisor no longer existing this is mostly likely to 
> affect
>> > arm32 builds. A quick grep however shows that all the existing arm32 uses 
> of
>> > both likely and unlikely already pass a boolean. I noticed this with an as 
> yet
>> > unposted patch which did not have this property.
>> 
>> Good catch,
> 
> I tore out some hair before I got there of course ;-)
> 
>>  except that at least in the 4.2 tree we still care for the
>> x86_32 hypervisor, and I already spotted a case having the same
>> issue (in mtrr_var_range_msr_set()). I.e. for the purposes of
>> backporting it might be better to make the statement above a little
>> less tailored to arm32.
> 
> That's fine by me. Do you mean for me to extend it now or did you want
> to change it as part of the backport process? Either is fine by me.
> 
> How about:
>         This is mostly likely to affect x86_32 and arm32 builds.  x86_32
>         is not present on 4.3 onwards and a quick grep of current
>         staging shows that all the existing arm32... <etc as before>
> ?

Yes, that reads fine for both -unstable and the backport.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.