Re: [RFC] LKMM: Add volatile_if()

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

 



On Tue, Jun 08, 2021 at 01:22:58PM +0200, Peter Zijlstra wrote:
> Works for me; and note how it mirrors how we implemented volatile_if()
> in the first place, by doing an expression wrapper.
> 
> __builtin_ctrl_depends(expr) would have to:
> 
>  - ensure !__builtin_const_p(expr)	(A)

Why would it be an error if __builtin_constant_p(expr)?  In many
programs the compiler can figure out some expression does never change.
Having a control dependency on sometthing like that is not erroneous.

>  - imply an acquire compiler fence	(B)
>  - ensure cond-branch is emitted	(C)

(C) is almost impossible to do.  This should be reformulated to talk
about the effect of the generated code, instead.

> *OR*
> 
>  - ensure !__builtin_const_p(expr);		(A)
>  - upgrade the load in @expr to load-acquire	(D)

So that will only work if there is exactly one read from memory in expr?
That is problematic.

This needs some work.


Segher



[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux