Re: [PATCH v6 07/36] nds32: Exception handling

From: Arnd Bergmann
Date: Tue Jan 30 2018 - 08:33:14 EST


On Tue, Jan 30, 2018 at 11:01 AM, Vincent Chen <deanbo422@xxxxxxxxx> wrote:
> 2018-01-24 19:10 GMT+08:00 Arnd Bergmann <arnd@xxxxxxxx>:
>> On Wed, Jan 24, 2018 at 12:09 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
>>> On Wed, Jan 24, 2018 at 11:53 AM, Vincent Chen <deanbo422@xxxxxxxxx> wrote:
>>>> 2018-01-18 18:14 GMT+08:00 Arnd Bergmann <arnd@xxxxxxxx>:
>>
>>> Ok. I still wonder about the kernel part of this though: is it a good idea
>>> for user space to configure whether the kernel does unaligned
>>> accesses? I would think that the kernel should just be fixed in such
>>> a case.
>>
>> To clarify: I'm asking only about unaligned accesses from kernel code itself,
>> which is generally considered a bug when
>> CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is disabled.
>>
>> Arnd
>
> Thanks for your comments.
>
> For performance, we decide always disable
> CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS even if hardware supports
> unaligned accessing. Therefore, I will remove kernel unaligned accessing from
> nds32/mm/alignment.c. In other words, alignment.c only addresses unaligned
> accessing for user space.

I'm not really following that logic, let's go through that again so I understand
the situation better.

CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS should be set if and
only if you have a CPU that does not need to trap on unaligned accesses.

What are the hardware capabilities on nds32? Do you have all three
categories:

a) some CPUs that always trap on unaligned access
b) some CPUs that never trap on unaligned access
c) some CPUs that can be configured to either trap or not trap by
the kernel?

Arnd