Message ID | 1445011330-22698-1-git-send-email-aryabinin@virtuozzo.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hello, Acked-by: Abylay Ospan <aospan@netup.ru> 2015-10-16 19:02 GMT+03:00 Andrey Ryabinin <aryabinin@virtuozzo.com>: > When the kernel compiled with KASAN=y, GCC adds redzones > for each variable on stack. This enlarges function's stack > frame and causes: > 'warning: the frame size of X bytes is larger than Y bytes' > > The worst case I've seen for now is following: > ../net/wireless/nl80211.c: In function ‘nl80211_send_wiphy’: > ../net/wireless/nl80211.c:1731:1: warning: the frame size of 5448 bytes is larger than 2048 bytes [-Wframe-larger-than=] > } > ^ > That kind of warning becomes useless with KASAN=y. It doesn't necessarily > indicate that there is some problem in the code, thus we should turn it off. > > Reported-by: Fengguang Wu <fengguang.wu@intel.com> > Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com> > --- > lib/Kconfig.debug | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index ab76b99..1d1521c 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -197,6 +197,7 @@ config ENABLE_MUST_CHECK > config FRAME_WARN > int "Warn for stack frames larger than (needs gcc 4.4)" > range 0 8192 > + default 0 if KASAN > default 1024 if !64BIT > default 2048 if 64BIT > help > -- > 2.4.9 >
On Fri, Oct 16, 2015 at 07:02:10PM +0300, Andrey Ryabinin wrote: > When the kernel compiled with KASAN=y, GCC adds redzones > for each variable on stack. This enlarges function's stack > frame and causes: > 'warning: the frame size of X bytes is larger than Y bytes' > > The worst case I've seen for now is following: > ../net/wireless/nl80211.c: In function ‘nl80211_send_wiphy’: > ../net/wireless/nl80211.c:1731:1: warning: the frame size of 5448 bytes is larger than 2048 bytes [-Wframe-larger-than=] > } > ^ > That kind of warning becomes useless with KASAN=y. It doesn't necessarily > indicate that there is some problem in the code, thus we should turn it off. If KASAN is really bloating the stack that much you may need to consider increasing the stack size with KASAN on. We have 16K now, but even that may not be enough if you more than double it. Otherwise it may just crash with KASAN on in more complex setups. -Andi -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
16 ??????? 2015 ?. 19:47:00 GMT+03:00, Andi Kleen <ak@linux.intel.com> ?????: >On Fri, Oct 16, 2015 at 07:02:10PM +0300, Andrey Ryabinin wrote: >> When the kernel compiled with KASAN=y, GCC adds redzones >> for each variable on stack. This enlarges function's stack >> frame and causes: >> 'warning: the frame size of X bytes is larger than Y bytes' >> >> The worst case I've seen for now is following: >> ../net/wireless/nl80211.c: In function ‘nl80211_send_wiphy’: >> ../net/wireless/nl80211.c:1731:1: warning: the frame size of 5448 >bytes is larger than 2048 bytes [-Wframe-larger-than=] >> } >> ^ >> That kind of warning becomes useless with KASAN=y. It doesn't >necessarily >> indicate that there is some problem in the code, thus we should turn >it off. > >If KASAN is really bloating the stack that much you may need to >consider >increasing the stack size with KASAN on. We have 16K now, but even that >may not be enough if you more than double it. > Such huge bloat only in a few places, anyway it's done already. Stack is 32k with kasan. >Otherwise it may just crash with KASAN on in more complex setups. > >-Andi >-- >To unsubscribe from this list: send the line "unsubscribe linux-kernel" >in >the body of a message to majordomo@vger.kernel.org >More majordomo info at http://vger.kernel.org/majordomo-info.html >Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index ab76b99..1d1521c 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -197,6 +197,7 @@ config ENABLE_MUST_CHECK config FRAME_WARN int "Warn for stack frames larger than (needs gcc 4.4)" range 0 8192 + default 0 if KASAN default 1024 if !64BIT default 2048 if 64BIT help
When the kernel compiled with KASAN=y, GCC adds redzones for each variable on stack. This enlarges function's stack frame and causes: 'warning: the frame size of X bytes is larger than Y bytes' The worst case I've seen for now is following: ../net/wireless/nl80211.c: In function ‘nl80211_send_wiphy’: ../net/wireless/nl80211.c:1731:1: warning: the frame size of 5448 bytes is larger than 2048 bytes [-Wframe-larger-than=] } ^ That kind of warning becomes useless with KASAN=y. It doesn't necessarily indicate that there is some problem in the code, thus we should turn it off. Reported-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com> --- lib/Kconfig.debug | 1 + 1 file changed, 1 insertion(+)