[<prev] [next>] [day] [month] [year] [list]
Message-ID: <56BAA9F7.50807@synopsys.com>
Date: Wed, 10 Feb 2016 08:39:43 +0530
From: Vineet Gupta <vgupta@...opsys.com>
To: "acme@...hat.com" <acme@...hat.com>, Noam Camus <noamc@...hip.com>
Cc: "peterz@...radead.org" <peterz@...radead.org>,
Alexey Brodkin <Alexey.Brodkin@...opsys.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-perf-users@...r.kernel.org" <linux-perf-users@...r.kernel.org>,
"andi@...stfloor.org" <andi@...stfloor.org>,
"dsahern@...il.com" <dsahern@...il.com>,
"tglx@...utronix.de" <tglx@...utronix.de>,
"linux-snps-arc@...ts.infradead.org"
<linux-snps-arc@...ts.infradead.org>,
"dvhart@...ux.intel.com" <dvhart@...ux.intel.com>,
Gilad Ben Yossef <giladb@...hip.com>
Subject: Re: [RFC] perf: fix building for ARCv1
On Friday 05 February 2016 09:40 PM, acme@...hat.com wrote:
> Em Fri, Feb 05, 2016 at 11:18:52AM +0000, Noam Camus escreveu:
>> Well here for EZchip I also see the:
>> undefined reference to `__sync_add_and_fetch_4'
>> undefined reference to `__sync_sub_and_fetch_4'
>
> Yeah, because there is no: tools/arch/arc/include/asm/atomic.h, can't
> you guys adapt arch/arc/include/asm/atomic.h to use in userspace?
Sure - however we need to support 3 variants: LLSC, !LLSC, EZCHIP
If needed, latter 2 could be done using a new atomic assist syscall
I presume kernel Kconfig items are no go in this header so this diversity
management needs to use toolchain defined macros e.g. __ezchip__
>
> - Arnaldo
>
>> This is since at file tools/include/asm/atomic.h we use the generic implementation
>> If for ARC I could use just like x86 my own header file then functions like:
>> atomic_inc()
>> atomic_dec_and_test()
>> Are easy to implement and you may see an example for such atomic methods in my patch set for the new platform.
>>
>> You however wants to use some GCC flag -matomic which I assume somehow will implement the above __sync*.
>> I can't find the implementation but if it uses LLSC then it won't work for me since I am not supporting LLSC.
>
>> So seem that either I have my own header at kernel or that I need to
>> change the GCC implementation for __sync* to use my atomic
>> instructions. I am personally tend to the x86 solution and not the
>> generic one since changing GCC will require to have new compiler
>> dependency.
Powered by blists - more mailing lists