On 12/04/17 13:22, Dmitry Eremin-Solenikov wrote:
> On 12.04.2017 14:05, Joe Savage wrote:
>> On 12/04/17 11:32, Maxim Uvarov wrote:
>>> On 12.04.2017 13:15, Joe Savage wrote:
>>>>>>> The problem is that when we discussed this patch on ODP call people very
>>>>>>> worry about having 128bit instructions in ODP examples. At least Petri
>>>>>>> and Barry asked if it would be possible to rewrite that with 64 bit
>>>>>>> instructions? Some compilers might not support 128 bits and we need to
>>>>>>> test it more.
>>>>>>
>>>>>> On 32-bit platforms, it already does use 64-bit atomics. In general, 
>>>>>> though,
>>>>>> the example hinges around having atomics that are twice the pointer size.
>>>>>> We've actually discussed this on the list already in the thread "32-bit
>>>>>> support in examples". Even if lock-free implementations can't be used,
>>>>>> compilers can (and frequently do?) provide a lock-based compare exchange
>>>>>> operation.
>>>>>
>>>>> Any progress on this?
>>>>
>>>> This is getting mildly ridiculous now — it's nearing three months since I
>>>> initially submitted this simple example patch, and there's still no end in
>>>> sight! Maxim: any status updates?
>>>>
>>>
>>> Dmitry wanted to write some big review for that patch. But I do not see
>>> anything here. People commented on 128 bit instructions in examples and
>>> nobody set their review-by. I will rise question about your patch one
>>> more time on arch call. I can not include things where we did not get
>>> common agreement. I do not see anything bad with this patch but we need
>>> account all existence odp platforms.
>
> I'm sorry for the delay. Was quite under a pile of IPsec stuff...

No worries.

> I'm quite not happy about intermixture of arch-dependent and
> arch-specific stuff in headers. Would it be possible to split
> arch-specific implementation details to per-arch headers (one for
> AArch64, one for older ARM and one generic) and include proper header
> based on the $(ARCH_DIR)? It would be especially nice to have such
> header provide ATOMIC_STRONG_CAS_DBLPTR (or maybe just
> atomic_strong_cas_dblptr() ).

Sure, I can split apart the architecture dependent stuff if you'd prefer it
that way. If I'm understanding you correctly, the suggestion here is to move
the architecture-specific CAS implementations into separate files — each
defining its own version of atomic_strong_cas_dblptr() — and for these files to
then be conditionally included in odp_ipfragreass_helpers.h. Is that right?

I'm not sure I quite follow your comments regarding $(ARCH_DIR) though. Are
there some ODP-defined macros that I can use instead of "__ARM_ARCH" and
friends or something?

> Forgot to mention. Your implementation seems build fine for MIPS64, so
> there should be no more issues from my side.

Cool, good stuff.

Reply via email to