Re: Potentially missing "memory" clobbers in bitops.h for x86

From: H. Peter Anvin
Date: Fri Mar 29 2019 - 16:52:53 EST


On 3/29/19 8:54 AM, Alexander Potapenko wrote:
>
>> Of course, this would force the compiler to actually compute the
>> offset, which would slow things down. I have no idea whether this
>> would be better or worse than just using the "memory" clobber.
> Just adding the "memory" clobber to clear_bit() changes sizes of 5
> kernel functions (the three mentioned above, plus hub_activate() and
> native_send_call_func_ipi()) by a small margin.
> This probably means the performance impact of this clobber is
> negligible in this case.

I would agree with that.

Could you perhaps verify whether or not any of the above functions
contains a currently manifest bug?

Note: the atomic versions of these functions obviously need to have
"volatile" and the clobber anyway, as they are by definition barriers
and moving memory operations around them would be a very serious error.

-hpa