Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1577974
| From | David Miller <davem@davemloft.net> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] netlink: move nla_put_{u8,u16,u32} out of line |
| Date | 2017-02-09 22:40 +0100 |
| Message-ID | <t94BA-2X8-9@gated-at.bofh.it> (permalink) |
| References | <t8I83-5Aj-39@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: Arnd Bergmann <arnd@arndb.de>
Date: Wed, 8 Feb 2017 22:18:26 +0100
> When CONFIG_KASAN is enabled, the "--param asan-stack=1" causes rather large
> stack frames in some functions. This goes unnoticed normally because
> CONFIG_FRAME_WARN is disabled with CONFIG_KASAN by default as of commit
> 3f181b4d8652 ("lib/Kconfig.debug: disable -Wframe-larger-than warnings with
> KASAN=y").
>
> The kernelci.org build bot however has the warning enabled and that led
> me to investigate it a little further, as every build produces these warnings:
>
> net/wireless/nl80211.c:4389:1: warning: the frame size of 2240 bytes is larger than 2048 bytes [-Wframe-larger-than=]
> net/wireless/nl80211.c:1895:1: warning: the frame size of 3776 bytes is larger than 2048 bytes [-Wframe-larger-than=]
> net/wireless/nl80211.c:1410:1: warning: the frame size of 2208 bytes is larger than 2048 bytes [-Wframe-larger-than=]
> net/bridge/br_netlink.c:1282:1: warning: the frame size of 2544 bytes is larger than 2048 bytes [-Wframe-larger-than=]
>
> It turns out that there is a relatively simple workaround for the netlink
> users that currently use a local variable in order to do the type conversion:
> Moving the three functions (for each of the typical sizes) to lib/nlattr.c
> avoids using local variables in the caller, which drastically reduces the
> stack usage for nl80211 and br_netlink.
>
> It would be good if we could enable the frame size check after that again,
> but that should be a separate patch and it requires some more testing
> to see which the largest acceptable frame size should be.
>
> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
> Cc: Alexander Potapenko <glider@google.com>
> Cc: Dmitry Vyukov <dvyukov@google.com>
> Cc: kasan-dev@googlegroups.com
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
You should only extern these things when KASAN is enabled.
The reason is that uninlining these routines makes attribute emission
more expensive and for some applications performance of this matters.
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH] netlink: move nla_put_{u8,u16,u32} out of line Arnd Bergmann <arnd@arndb.de> - 2017-02-08 22:40 +0100
Re: [PATCH] netlink: move nla_put_{u8,u16,u32} out of line Dmitry Vyukov <dvyukov@google.com> - 2017-02-09 12:40 +0100
Re: [PATCH] netlink: move nla_put_{u8,u16,u32} out of line Arnd Bergmann <arnd@arndb.de> - 2017-02-09 13:00 +0100
Re: [PATCH] netlink: move nla_put_{u8,u16,u32} out of line Dmitry Vyukov <dvyukov@google.com> - 2017-02-09 13:50 +0100
Re: [PATCH] netlink: move nla_put_{u8,u16,u32} out of line Arnd Bergmann <arnd@arndb.de> - 2017-02-09 15:50 +0100
Re: [PATCH] netlink: move nla_put_{u8,u16,u32} out of line Dmitry Vyukov <dvyukov@google.com> - 2017-02-09 18:00 +0100
Re: [PATCH] netlink: move nla_put_{u8,u16,u32} out of line Arnd Bergmann <arnd@arndb.de> - 2017-02-09 18:10 +0100
Re: [PATCH] netlink: move nla_put_{u8,u16,u32} out of line Arnd Bergmann <arnd@arndb.de> - 2017-02-10 14:40 +0100
Re: [PATCH] netlink: move nla_put_{u8,u16,u32} out of line Arnd Bergmann <arnd@arndb.de> - 2017-02-13 17:20 +0100
Re: [PATCH] netlink: move nla_put_{u8,u16,u32} out of line David Miller <davem@davemloft.net> - 2017-02-09 22:40 +0100
RE: [PATCH] netlink: move nla_put_{u8,u16,u32} out of line David Laight <David.Laight@ACULAB.COM> - 2017-02-10 13:10 +0100
csiph-web