From: Alexander Lobakin <aleksander.lobakin@intel.com>
To: Anton Protopopov <aspsk@isovalent.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
Naresh Kamboju <naresh.kamboju@linaro.org>,
open list <linux-kernel@vger.kernel.org>,
<lkft-triage@lists.linaro.org>,
Linux Regressions <regressions@lists.linux.dev>,
Anders Roxell <anders.roxell@linaro.org>,
Dan Carpenter <dan.carpenter@linaro.org>,
"Daniel Borkmann" <daniel@iogearbox.net>,
David Ahern <dsahern@kernel.org>,
"Alexei Starovoitov" <ast@kernel.org>,
Russell King <rmk+kernel@armlinux.org.uk>,
"Ard Biesheuvel" <ardb@kernel.org>,
Linus Walleij <linus.walleij@linaro.org>
Subject: Re: include/linux/build_bug.h:78:41: error: static assertion failed: "struct bpf_fib_lookup size check"
Date: Wed, 3 Apr 2024 12:12:31 +0200 [thread overview]
Message-ID: <4bc04c7e-683c-4f33-b65e-6cf088e837b7@intel.com> (raw)
In-Reply-To: <CAPyNcWdPJYOtDbun-qUJApm9ndsVkEj-sHDfbMWK2yCT6FOwdA@mail.gmail.com>
From: Anton Protopopov <aspsk@isovalent.com>
Date: Wed, 3 Apr 2024 12:09:29 +0200
> On Wed, Apr 3, 2024 at 11:57 AM Anton Protopopov <aspsk@isovalent.com> wrote:
>>
>> On Wed, Apr 3, 2024 at 11:39 AM Alexander Lobakin
>> <aleksander.lobakin@intel.com> wrote:
>>>
>>> From: Arnd Bergmann <arnd@arndb.de>
>>> Date: Wed, 03 Apr 2024 10:45:36 +0200
>>>
>>>> On Wed, Apr 3, 2024, at 10:10, Anton Protopopov wrote:
>>>>> On Wed, Apr 3, 2024 at 10:03 AM Naresh Kamboju
>>>>> <naresh.kamboju@linaro.org> wrote:
>>>>>>
>>>>>> The arm footbridge_defconfig failed with gcc-13 and gcc-8 on Linux next
>>>>>> starting from next-20240328..next-20240402.
>>>>>>
>>>>>> arm:
>>>>>> build:
>>>>>> * gcc-8-footbridge_defconfig - Failed
>>>>>> * gcc-13-footbridge_defconfig - Failed
>>>>>>
>>>>>> Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
>>>>>>
>>>>>> In file included from include/linux/bitfield.h:10,
>>>>>> from arch/arm/include/asm/ptrace.h:13,
>>>>>> from arch/arm/include/asm/processor.h:14,
>>>>>> from include/linux/prefetch.h:15,
>>>>>> from arch/arm/include/asm/atomic.h:12,
>>>>>> from include/linux/atomic.h:7,
>>>>>> from net/core/filter.c:20:
>>>>>> include/linux/build_bug.h:78:41: error: static assertion failed:
>>>>>> "struct bpf_fib_lookup size check"
>>>>>> 78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
>>>>>> | ^~~~~~~~~~~~~~
>>>>>
>>>>> Thanks, I will take a look today
>>>
>>> Naresh,
>>>
>>> Could you please remove that static_assert() and dump bpf_bif_lookup
>>> layout from pahole?
>>>
>>> Anton unionized { smac, dmac } with __u32 mark. On x86_64, the offset of
>>> smac was 52 (aligned to 4) already, so I don't really get what AEABI
>>> does here. IIRC it aligns every structure to 8 bytes?
>>>
>>> Maybe we could just add __attribute__((__packed__))
>>> __attribute__((__aligned__(4))) to that anonymous union at the end.
>>
>> Yeah, I am sending a patch for this right now. Better not to depend on
>> compiler options
>
> One __packed__ was not enough though. The problem was also with the
> union of two __u16's which is padded to be 32 bits when AEABI=n and
> the whole structure is packed (so total size is 66 in this case).
Hmm, on my setup it's 64 bytes. Since it's UAPI, it always must be of
the same size. There's probably a padding somewhere in the middle.
Also, don't forget to always set __aligned__(4 or 8) together with
__packed__, otherwise the compilers generate terrible code (they assume
the structure alignment is 1 and access to every field can be unaligned).
Thanks,
Olek
next prev parent reply other threads:[~2024-04-03 10:13 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-03 8:03 Naresh Kamboju
2024-04-03 8:10 ` Anton Protopopov
2024-04-03 8:45 ` Arnd Bergmann
2024-04-03 9:37 ` Alexander Lobakin
2024-04-03 9:57 ` Anton Protopopov
2024-04-03 10:09 ` Anton Protopopov
2024-04-03 10:12 ` Alexander Lobakin [this message]
2024-04-03 11:17 ` Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4bc04c7e-683c-4f33-b65e-6cf088e837b7@intel.com \
--to=aleksander.lobakin@intel.com \
--cc=anders.roxell@linaro.org \
--cc=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=aspsk@isovalent.com \
--cc=ast@kernel.org \
--cc=dan.carpenter@linaro.org \
--cc=daniel@iogearbox.net \
--cc=dsahern@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkft-triage@lists.linaro.org \
--cc=naresh.kamboju@linaro.org \
--cc=regressions@lists.linux.dev \
--cc=rmk+kernel@armlinux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®