From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anton Ivanov Subject: Re: [RFC v3 01/26] asm-generic: atomic64: allow using generic atomic64 on 64bit platforms Date: Wed, 5 Feb 2020 12:29:40 +0000 Message-ID: References: <39e1313ff3cf3eab6ceb5ae322fcd3e5d4432167.1580882335.git.thehajime@gmail.com> <20200205093454.GG14879@hirez.programming.kicks-ass.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from ivanoab7.miniserver.com ([37.128.132.42]:58010 "EHLO www.kot-begemot.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726961AbgBEM3u (ORCPT ); Wed, 5 Feb 2020 07:29:50 -0500 In-Reply-To: Content-Language: en-US Sender: linux-arch-owner@vger.kernel.org List-ID: To: Octavian Purdila , Peter Zijlstra Cc: linux-arch , Boqun Feng , linux-um , Akira Moroo , linux-kernel-library , Will Deacon , Hajime Tazaki On 05/02/2020 12:24, Octavian Purdila wrote: > On Wed, Feb 5, 2020 at 11:34 AM Peter Zijlstra wrote: >> >> On Wed, Feb 05, 2020 at 04:30:10PM +0900, Hajime Tazaki wrote: >>> From: Octavian Purdila >>> >>> With CONFIG_64BIT enabled, atomic64 via CONFIG_GENERIC_ATOMIC64 options >>> are not compiled due to type conflict of atomic64_t defined in >>> linux/type.h. >>> >>> This commit fixes the issue and allow using generic atomic64 ops. >>> >>> Currently, LKL is only the user which defines GENERIC_ATOMIC64 >>> (lib/atomic64.c) under CONFIG_64BIT environment. Thus, there is no >>> issues before this commit. >> >> Uhhhhh, no. >> >> Not allowing GENERIC_ATOMIC64 on 64BIT is a *feature*. >> >> Any 64bit arch that needs GENERIC_ATOMIC64 is an utter piece of crap. >> >> Please explain more. >> > > Hi Peter, > > I was not aware that not allowing GENERIC_ATOMIC64 was intentional. I > understand your point that a 64 bit architecture that can't handle 64 > bit atomic operation is broken. > > One way to deal with this in LKL would be to use GCC atomic builtins > or if that doesn't work expose them as host operations. This would > keep LKL as a meta-arch that can run on multiple physical > architectures. I'll give it a try. > > _______________________________________________ > linux-um mailing list > linux-um@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-um > You can lift a set of defines which do that for most compilers/arches out of OVS code. Have a look at lib/ovs-atomic*.h It should do exactly what you want (+/- cutting it down to things you need). -- Anton R. Ivanov https://www.kot-begemot.co.uk/