2019-02-28 18:45:34

by Vineet Gupta

[permalink] [raw]
Subject: Re: [PATCH] ARCv2: Add explcit unaligned access support (and ability to disable too)

On 2/28/19 9:47 AM, Guenter Roeck wrote:
> On Wed, Jan 30, 2019 at 07:32:41PM +0300, Eugeniy Paltsev wrote:
>> As of today we enable unaligned access unconditionally on ARCv2.
>> Do this under a Kconfig option to allow disable it for test, benchmarking
>> etc. Also while at it
>>
>> - Select HAVE_EFFICIENT_UNALIGNED_ACCESS
>> - Although gcc defaults to unaligned access (since GNU 2018.03), add the
>> right toggles for enabling or disabling as appropriate
>> - update bootlog to prints both HW feature status (exists, enabled/disabled)
>> and SW status (used / not used).
>> - wire up the relaxed memcpy for unaligned access
>>
>> Signed-off-by: Eugeniy Paltsev <[email protected]>
>> Signed-off-by: Vineet Gupta <[email protected]>
>> [vgupta: squashed patches, handle gcc -mno-unaligned-access quick]
> Hi,
>
> with my brand-new gcc-8.3.0, built from upstream gcc, this patch
> results in
>
> arch/arc/kernel/setup.c: In function 'arc_cpu_mumbojumbo.constprop':
> include/linux/compiler.h:348:38: error:
> call to '__compiletime_assert_326' declared with attribute error: gcc doesn't support -mno-unaligned-access

Sorry it broke ur build - but it did catch a deficiency in compiler as intended -
yay !

> when trying to build allnoconfig or tinyconfig. I get the same results
> with gcc-8.2.0.

Unaligned access code gen was enabled by default in 7.x actually, but us OS folks
were late to find that which led to the recent patch to disable it which was
broken in gcc.
Claudiu fixed gcc promptly but that patch didn't make it to upstream, which I've
posted now.

http://lists.infradead.org/pipermail/linux-snps-arc/2019-February/005522.html

> Do I need some special compiler configuration flag when building the
> arcv2 toolchain ? Or am I simply out of luck for using upstream gcc ?

Once the patch hits mainline you could use that. In the mean time I'll back out
the "detector" as it might trip other people too.

Many Thx for your testing service.
-Vineet


2019-02-28 21:24:23

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] ARCv2: Add explcit unaligned access support (and ability to disable too)

On Thu, Feb 28, 2019 at 06:12:33PM +0000, Vineet Gupta wrote:
> On 2/28/19 9:47 AM, Guenter Roeck wrote:
> > On Wed, Jan 30, 2019 at 07:32:41PM +0300, Eugeniy Paltsev wrote:
> >> As of today we enable unaligned access unconditionally on ARCv2.
> >> Do this under a Kconfig option to allow disable it for test, benchmarking
> >> etc. Also while at it
> >>
> >> - Select HAVE_EFFICIENT_UNALIGNED_ACCESS
> >> - Although gcc defaults to unaligned access (since GNU 2018.03), add the
> >> right toggles for enabling or disabling as appropriate
> >> - update bootlog to prints both HW feature status (exists, enabled/disabled)
> >> and SW status (used / not used).
> >> - wire up the relaxed memcpy for unaligned access
> >>
> >> Signed-off-by: Eugeniy Paltsev <[email protected]>
> >> Signed-off-by: Vineet Gupta <[email protected]>
> >> [vgupta: squashed patches, handle gcc -mno-unaligned-access quick]
> > Hi,
> >
> > with my brand-new gcc-8.3.0, built from upstream gcc, this patch
> > results in
> >
> > arch/arc/kernel/setup.c: In function 'arc_cpu_mumbojumbo.constprop':
> > include/linux/compiler.h:348:38: error:
> > call to '__compiletime_assert_326' declared with attribute error: gcc doesn't support -mno-unaligned-access
>
> Sorry it broke ur build - but it did catch a deficiency in compiler as intended -
> yay !
>
> > when trying to build allnoconfig or tinyconfig. I get the same results
> > with gcc-8.2.0.
>
> Unaligned access code gen was enabled by default in 7.x actually, but us OS folks
> were late to find that which led to the recent patch to disable it which was
> broken in gcc.
> Claudiu fixed gcc promptly but that patch didn't make it to upstream, which I've
> posted now.
>
> http://lists.infradead.org/pipermail/linux-snps-arc/2019-February/005522.html
>
> > Do I need some special compiler configuration flag when building the
> > arcv2 toolchain ? Or am I simply out of luck for using upstream gcc ?
>
> Once the patch hits mainline you could use that. In the mean time I'll back out
> the "detector" as it might trip other people too.
>

Can you possibly use $(cc-option,-mno-unaligned-access), or would that
defeat the purpose ?

> Many Thx for your testing service.

My pleasure.

Thanks,
Guenter