Before we consider adding new synchronization APIs, we need a clearly
defined use case for why a portable application would need this. ODP
implementations may make use of such things based on their knowledge
of the platform architecture, but ODP applications (should) have no
such platform-specific dependencies. So we need a platform-independent
use case.

On Sun, Sep 10, 2017 at 10:28 PM, Brian Brooks <brian.bro...@linaro.org> wrote:
> Hi Andriy,
>
> On Wed, Sep 6, 2017 at 12:24 PM, Andriy Berestovskyy
> <andriy.berestovs...@caviumnetworks.com> wrote:
>> Hey Brian,
>> You are right, there are no compiler barriers on master, I just was on
>> api-next branch:
>>
>> https://git.linaro.org/lng/odp.git/tree/platform/linux-generic/arch/arm/odp_atomic.h?h=api-next#n56
>
> How about a #define for compiler barrier in odp_compiler_internal.h?
>
>> Andriy
>>
>>
>> On 05.09.2017 17:06, Brian Brooks wrote:
>>>
>>> I don't see a compiler barrier in the odp.git repo. Perhaps 'nop', but
>>> this acts as more than a pure compiler barrier?
>>>
>>>
>>> On Tue, Sep 5, 2017 at 8:23 AM, Andriy Berestovskyy
>>> <andriy.berestovs...@caviumnetworks.com> wrote:
>>>>
>>>> Hey Petri,
>>>>
>>>> On 05.09.2017 14:17, Savolainen, Petri (Nokia - FI/Espoo) wrote:
>>>>>
>>>>>
>>>>> I think compiler barrier is too weak for writing portable code, since it
>>>>> does not guarantee that the CPU would not re-order the instructions.
>>>>
>>>>
>>>>
>>>>
>>>> No, compiler barrier does not guarantee CPU order. Though, sometimes we
>>>> do
>>>> not need such a guarantee.
>>>>
>>>> Compiler barriers are in the same league with volatiles and provide the
>>>> same
>>>> weak guarantees: eventually the effect will be observed and code will not
>>>> be
>>>> optimized out by the compiler.
>>>>
>>>>
>>>>
>>>>> ODP implementation has ":::memory" in context of inline assembly
>>>>> instructions, but that's when we are writing code against specific ISA
>>>>> and
>>>>> thus know which amount of synchronization is needed.
>>>>
>>>>
>>>>
>>>>
>>>> The barrier is quite rare, so it might remain in form of asm volatile...
>>>>
>>>>
>>>> Andriy

Reply via email to