Message ID | 20221024212144.2852069-3-glider@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
On Tue, Oct 25, 2022 at 6:22 AM Alexander Potapenko <glider@google.com> wrote: > > KMSAN adds a lot of instrumentation to the code, which results in > increased stack usage (up to 2048 bytes and more in some cases). > It's hard to predict how big the stack frames can be, so we disable > the warnings for KMSAN instead. > > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Kees Cook <keescook@chromium.org> > Cc: Masahiro Yamada <masahiroy@kernel.org> > Cc: Nick Desaulniers <ndesaulniers@google.com> > Cc: linux-kbuild@vger.kernel.org > Link: https://github.com/google/kmsan/issues/89 > Signed-off-by: Alexander Potapenko <glider@google.com> > --- > lib/Kconfig.debug | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > index 3fc7abffc7aa2..29280072dc0e4 100644 > --- a/lib/Kconfig.debug > +++ b/lib/Kconfig.debug > @@ -400,8 +400,9 @@ config FRAME_WARN > default 1536 if (!64BIT && XTENSA) > default 1024 if !64BIT > default 2048 if 64BIT > + default 0 if KMSAN This is wrong. Kconfig picks up the first default entry which has true 'if' condition. Since (!64BIT || 64BIT) covers all the possible cases, this patch is just adding dead code. > help > - Tell gcc to warn at build time for stack frames larger than this. > + Tell the compiler to warn at build time for stack frames larger than this. > Setting this too low will cause a lot of warnings. > Setting it to 0 disables the warning. > > -- > 2.38.0.135.g90850a2211-goog >
On Thu, Oct 27, 2022 at 7:33 AM Masahiro Yamada <masahiroy@kernel.org> wrote: > > On Tue, Oct 25, 2022 at 6:22 AM Alexander Potapenko <glider@google.com> wrote: > > > > KMSAN adds a lot of instrumentation to the code, which results in > > increased stack usage (up to 2048 bytes and more in some cases). > > It's hard to predict how big the stack frames can be, so we disable > > the warnings for KMSAN instead. > > > > Cc: Andrew Morton <akpm@linux-foundation.org> > > Cc: Kees Cook <keescook@chromium.org> > > Cc: Masahiro Yamada <masahiroy@kernel.org> > > Cc: Nick Desaulniers <ndesaulniers@google.com> > > Cc: linux-kbuild@vger.kernel.org > > Link: https://github.com/google/kmsan/issues/89 > > Signed-off-by: Alexander Potapenko <glider@google.com> > > --- > > lib/Kconfig.debug | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug > > index 3fc7abffc7aa2..29280072dc0e4 100644 > > --- a/lib/Kconfig.debug > > +++ b/lib/Kconfig.debug > > @@ -400,8 +400,9 @@ config FRAME_WARN > > default 1536 if (!64BIT && XTENSA) > > default 1024 if !64BIT > > default 2048 if 64BIT > > + default 0 if KMSAN > > > > This is wrong. > > Kconfig picks up the first default entry which has > true 'if' condition. > > > Since (!64BIT || 64BIT) covers all the possible cases, > this patch is just adding dead code. > Thanks for clarifying! What we actually need is to forcefully disable CONFIG_FRAME_WARN under KMSAN, but adding constructs like "select FRAME_WARN 0" or "select FRAME_WARN=0" doesn't work, right? I'll move "default 0 if KMSAN" to the beginning of FRAME_WARN declaration then. > > > > > > > help > > - Tell gcc to warn at build time for stack frames larger than this. > > + Tell the compiler to warn at build time for stack frames larger than this. > > Setting this too low will cause a lot of warnings. > > Setting it to 0 disables the warning. > > > > -- > > 2.38.0.135.g90850a2211-goog > > > > > -- > Best Regards > Masahiro Yamada
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 3fc7abffc7aa2..29280072dc0e4 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -400,8 +400,9 @@ config FRAME_WARN default 1536 if (!64BIT && XTENSA) default 1024 if !64BIT default 2048 if 64BIT + default 0 if KMSAN help - Tell gcc to warn at build time for stack frames larger than this. + Tell the compiler to warn at build time for stack frames larger than this. Setting this too low will cause a lot of warnings. Setting it to 0 disables the warning.
KMSAN adds a lot of instrumentation to the code, which results in increased stack usage (up to 2048 bytes and more in some cases). It's hard to predict how big the stack frames can be, so we disable the warnings for KMSAN instead. Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Kees Cook <keescook@chromium.org> Cc: Masahiro Yamada <masahiroy@kernel.org> Cc: Nick Desaulniers <ndesaulniers@google.com> Cc: linux-kbuild@vger.kernel.org Link: https://github.com/google/kmsan/issues/89 Signed-off-by: Alexander Potapenko <glider@google.com> --- lib/Kconfig.debug | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)