On 12/25/2014 01:55 PM, Taras Kondratiuk wrote:
On 12/25/2014 11:53 AM, Maxim Uvarov wrote:
On 12/25/2014 12:34 PM, Taras Kondratiuk wrote:
On 12/24/2014 12:21 PM, Maxim Uvarov wrote:
On 12/23/2014 07:15 PM, Taras Kondratiuk wrote:
Linux-generic shouldn't have arch specific parts, because it is
*generic*. Instead it can fall back to strong __sync functions if
__atomic are not available.
Taras I think that even linux-generic should have it's own requirements.
It might be compiler version.
Dependence on libssl. Kernel version and etc.
We do not say that linux-generic should work on any linux, even 20 years
old. We just define needed requirements
to compile it. The same is with atomics. Instead of creating 20 branches
for all gcc and not gcc version we just
stick with more fresh gcc and say that it's minimal requirement to run
linux-generic.
I don't think it worth to make such a tight restriction to use only gcc
4.7+. Having fallback to __sync_* function will relax it to something
like gcc 4.1+. Sure performance will be worse, but it should be ok for
linux-generic.
Why it is ok? If possible we need to make linux-generic version fast.
Support of old gcc is not required. If it's needed for somebody he can
do this in his own platform.
Because performance is not the main target for linux-generic.
I'm a bit puzzled with your arguments so want to clarify your point.
I see three options here:
1. __atomic_* only, so we don't support older compilers.
2. __atomic_* with fallback to __sync_*.
3. __atomic_* and inline assembler for some architectures.
Currently we have #3 in the code. As far as I understand you are for #1.
Right? I'd support #2.
Yes, currently we have #3. And what I understood from all discussions is
to go with #1.
At lease fall-back was never discussed.
Ola's patch bellow replaced __sync with __atomic. If we need #2
fall-back then we need restore original __sync code.
But before doing this we need to figure out who actually requires this.
commit 8363d4608e67ecdd000fb77b440ec1707d1cc6f6
Author: Ola Liljedahl <[email protected]>
Date: Mon Nov 24 23:38:49 2014 +0100
api: odp_atomic.h: struct type, relaxed mm, missing funcs, use __atomic
Maxim.
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp