Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1724051 > unrolled thread
| Started by | Masahiro Yamada <yamada.masahiro@socionext.com> |
|---|---|
| First post | 2017-08-31 12:00 +0200 |
| Last post | 2017-09-07 18:50 +0200 |
| Articles | 4 — 4 participants |
Back to article view | Back to linux.kernel
[PATCH] arm64: relax assembly code alignment from 16 byte to 4 byte Masahiro Yamada <yamada.masahiro@socionext.com> - 2017-08-31 12:00 +0200
Re: [PATCH] arm64: relax assembly code alignment from 16 byte to 4 byte Lothar Waßmann <LW@KARO-electronics.de> - 2017-08-31 12:30 +0200
Re: [PATCH] arm64: relax assembly code alignment from 16 byte to 4 byte Robin Murphy <robin.murphy@arm.com> - 2017-08-31 12:40 +0200
Re: [PATCH] arm64: relax assembly code alignment from 16 byte to 4 byte Catalin Marinas <catalin.marinas@arm.com> - 2017-09-07 18:50 +0200
| From | Masahiro Yamada <yamada.masahiro@socionext.com> |
|---|---|
| Date | 2017-08-31 12:00 +0200 |
| Subject | [PATCH] arm64: relax assembly code alignment from 16 byte to 4 byte |
| Message-ID | <ukuqu-3ZB-9@gated-at.bofh.it> |
Aarch64 instructions must be word aligned. The current 16 byte
alignment is more than enough. Relax it into 4 byte alignment.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
I do not know why arm64 Linux requires 16 byte alignment.
I dug git-history of arch/arm64/include/asm/linkage.h
and the only commit I see is:
commit aeed41a9371ee02257b608eb06a9058507a7d0f4
Author: Marc Zyngier <Marc.Zyngier@arm.com>
Date: Fri Oct 19 17:33:27 2012 +0100
arm64: fix alignment padding in assembly code
It just opt out of the asm-generic variant to remove 0x90.
So, the amount of alignment might not be not optimized yet.
Please correct me if I am missing something.
arch/arm64/include/asm/linkage.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/include/asm/linkage.h b/arch/arm64/include/asm/linkage.h
index 636c1bc..1b26629 100644
--- a/arch/arm64/include/asm/linkage.h
+++ b/arch/arm64/include/asm/linkage.h
@@ -1,7 +1,7 @@
#ifndef __ASM_LINKAGE_H
#define __ASM_LINKAGE_H
-#define __ALIGN .align 4
-#define __ALIGN_STR ".align 4"
+#define __ALIGN .align 2
+#define __ALIGN_STR ".align 2"
#endif
--
2.7.4
[toc] | [next] | [standalone]
| From | Lothar Waßmann <LW@KARO-electronics.de> |
|---|---|
| Date | 2017-08-31 12:30 +0200 |
| Subject | Re: [PATCH] arm64: relax assembly code alignment from 16 byte to 4 byte |
| Message-ID | <ukuTw-4op-31@gated-at.bofh.it> |
| In reply to | #1724051 |
Hi, On Thu, 31 Aug 2017 18:56:23 +0900 Masahiro Yamada wrote: > Aarch64 instructions must be word aligned. The current 16 byte > alignment is more than enough. Relax it into 4 byte alignment. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > > I do not know why arm64 Linux requires 16 byte alignment. > > I dug git-history of arch/arm64/include/asm/linkage.h > and the only commit I see is: > > commit aeed41a9371ee02257b608eb06a9058507a7d0f4 > Author: Marc Zyngier <Marc.Zyngier@arm.com> > Date: Fri Oct 19 17:33:27 2012 +0100 > > arm64: fix alignment padding in assembly code > > It just opt out of the asm-generic variant to remove 0x90. > So, the amount of alignment might not be not optimized yet. > > Please correct me if I am missing something. > > > arch/arm64/include/asm/linkage.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm64/include/asm/linkage.h b/arch/arm64/include/asm/linkage.h > index 636c1bc..1b26629 100644 > --- a/arch/arm64/include/asm/linkage.h > +++ b/arch/arm64/include/asm/linkage.h > @@ -1,7 +1,7 @@ > #ifndef __ASM_LINKAGE_H > #define __ASM_LINKAGE_H > > -#define __ALIGN .align 4 > -#define __ALIGN_STR ".align 4" > +#define __ALIGN .align 2 > +#define __ALIGN_STR ".align 2" > > #endif > My math tells me, that 2 is one half of 4 but 4 is one fourth of 16, so this change doesn't line up with your commit message, or am I missing something? Lothar Waßmann
[toc] | [prev] | [next] | [standalone]
| From | Robin Murphy <robin.murphy@arm.com> |
|---|---|
| Date | 2017-08-31 12:40 +0200 |
| Subject | Re: [PATCH] arm64: relax assembly code alignment from 16 byte to 4 byte |
| Message-ID | <ukv3c-4rE-5@gated-at.bofh.it> |
| In reply to | #1724081 |
On 31/08/17 11:23, Lothar Waßmann wrote: > Hi, > > On Thu, 31 Aug 2017 18:56:23 +0900 Masahiro Yamada wrote: >> Aarch64 instructions must be word aligned. The current 16 byte >> alignment is more than enough. Relax it into 4 byte alignment. >> >> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> >> --- >> >> I do not know why arm64 Linux requires 16 byte alignment. >> >> I dug git-history of arch/arm64/include/asm/linkage.h >> and the only commit I see is: >> >> commit aeed41a9371ee02257b608eb06a9058507a7d0f4 >> Author: Marc Zyngier <Marc.Zyngier@arm.com> >> Date: Fri Oct 19 17:33:27 2012 +0100 >> >> arm64: fix alignment padding in assembly code >> >> It just opt out of the asm-generic variant to remove 0x90. >> So, the amount of alignment might not be not optimized yet. >> >> Please correct me if I am missing something. >> >> >> arch/arm64/include/asm/linkage.h | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/arch/arm64/include/asm/linkage.h b/arch/arm64/include/asm/linkage.h >> index 636c1bc..1b26629 100644 >> --- a/arch/arm64/include/asm/linkage.h >> +++ b/arch/arm64/include/asm/linkage.h >> @@ -1,7 +1,7 @@ >> #ifndef __ASM_LINKAGE_H >> #define __ASM_LINKAGE_H >> >> -#define __ALIGN .align 4 >> -#define __ALIGN_STR ".align 4" >> +#define __ALIGN .align 2 >> +#define __ALIGN_STR ".align 2" >> >> #endif >> > My math tells me, that 2 is one half of 4 but 4 is one fourth of 16, so > this change doesn't line up with your commit message, or am I missing > something? 2^4 = 16 2^2 = 4 The ARM behaviour of the .align directive is a bit funky... Robin. > > > Lothar Waßmann > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >
[toc] | [prev] | [next] | [standalone]
| From | Catalin Marinas <catalin.marinas@arm.com> |
|---|---|
| Date | 2017-09-07 18:50 +0200 |
| Subject | Re: [PATCH] arm64: relax assembly code alignment from 16 byte to 4 byte |
| Message-ID | <un8a5-2Cg-5@gated-at.bofh.it> |
| In reply to | #1724051 |
On Thu, Aug 31, 2017 at 06:56:23PM +0900, Masahiro Yamada wrote: > Aarch64 instructions must be word aligned. The current 16 byte > alignment is more than enough. Relax it into 4 byte alignment. > > Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> > --- > > I do not know why arm64 Linux requires 16 byte alignment. > > I dug git-history of arch/arm64/include/asm/linkage.h > and the only commit I see is: > > commit aeed41a9371ee02257b608eb06a9058507a7d0f4 > Author: Marc Zyngier <Marc.Zyngier@arm.com> > Date: Fri Oct 19 17:33:27 2012 +0100 > > arm64: fix alignment padding in assembly code > > It just opt out of the asm-generic variant to remove 0x90. > So, the amount of alignment might not be not optimized yet. > > Please correct me if I am missing something. Not sure why we ended up with 4. Possibly because we forgot the power of 2 difference for arm/arm64. Queued for 4.14. Thanks. -- Catalin
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web