[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190214102815.GF32494@hirez.programming.kicks-ass.net>
Date: Thu, 14 Feb 2019 11:28:15 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Alexey Brodkin <alexey.brodkin@...opsys.com>
Cc: Vineet Gupta <vineet.gupta1@...opsys.com>,
David Laight <David.Laight@...LAB.COM>,
"linux-snps-arc@...ts.infradead.org"
<linux-snps-arc@...ts.infradead.org>,
Arnd Bergmann <arnd.bergmann@...aro.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"stable@...r.kernel.org" <stable@...r.kernel.org>,
Mark Rutland <mark.rutland@....com>
Subject: Re: [PATCH] ARC: Explicitly set ARCH_SLAB_MINALIGN = 8
On Thu, Feb 14, 2019 at 08:50:43AM +0000, Alexey Brodkin wrote:
> But that's pretty much the same for other 32-bit arches that have 64-bit atomics
> like ARM etc. From what I may see from ARM's documentation for LDREXD/SRREXD they
> require double-word alignment of data as well.
>
> That said if for some reason atomic64_t variable is unaligned execution on
> any (or at least most) 32-bit architectures will lead to run-time failure,
> i.e. we'll know about it and this will be fixed.
On x86_32 we have cmpxchg8b that 'likes' 8b alignment, our atomic64_32
implementation has the explicit alignment in, however there
__alignof__(unsigned long long) is actually 8, so it all works.
Even though the hardware (obviously) never really requires alignment,
even for atomic ops (although that's coming, yay!).
Powered by blists - more mailing lists