Re: [PATCH] lib/ubsan: default UBSAN_ALIGNMENT to not set

From: Andrey Ryabinin
Date: Wed Jan 30 2019 - 12:12:29 EST




On 1/30/19 4:36 AM, Andrew Morton wrote:
> On Fri, 11 Jan 2019 22:01:16 +0300 Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> wrote:
>
>>
>>
>> On 12/17/18 6:03 PM, Anders Roxell wrote:
>>> When booting an allmodconfig kernel, there are a lot of false-positives.
>>> With a message like this 'UBSAN: Undefined behaviour in...' with a call
>>> trace that follows.
>>>
>>> Reworked so that when building a allmodconfig kernel that turns
>>> everything into '=m' or '=y' will turn off UBSAN_ALIGNMENT.
>>>
>>> Suggested-by: Arnd Bergmann <arnd@xxxxxxxx>
>>> Signed-off-by: Anders Roxell <anders.roxell@xxxxxxxxxx>
>>> ---
>>
>> Acked-by: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx>
>>
>
> Confused. Why does allmodconfig result in UBSAN warnings?
>

UBSAN warnings is a result of enabling noisy CONFIG_UBSAN_ALIGNMENT which is disabled
by default if HAVE_EFFICIENT_UNALIGNED_ACCESS=y.
It's noisy even if don't have efficient unaligned access, e.g. people often add __cacheline_aligned_in_smp
in structs, but forget to align allocations of such struct (kmalloc() give 8-byte alignment in worst case).