Message ID | 20201203004437.389959-6-keescook@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Clean up UBSAN Makefile | expand |
On Thu, Dec 3, 2020 at 1:44 AM Kees Cook <keescook@chromium.org> wrote: > > With UBSAN_OBJECT_SIZE disabled for GCC, only UBSAN_ALIGNMENT remained > a noisy UBSAN option. Disable it for COMPILE_TEST so the rest of UBSAN > can be used for full all*config builds or other large combinations. > > Link: https://lore.kernel.org/lkml/CAHk-=wgXW=YLxGN0QVpp-1w5GDd2pf1W-FqY15poKzoVfik2qA@mail.gmail.com/ > Signed-off-by: Kees Cook <keescook@chromium.org> Have you checked if this has a notable impact on allmodconfig compile speed with gcc or clang? I think I've seen significant increases in build times before with this, but I don't remember the actual magnitude. Making it 20% slower would probably be ok, but making it twice as slow might be too much. Arnd
On Thu, Dec 03, 2020 at 09:51:40AM +0100, Arnd Bergmann wrote: > On Thu, Dec 3, 2020 at 1:44 AM Kees Cook <keescook@chromium.org> wrote: > > > > With UBSAN_OBJECT_SIZE disabled for GCC, only UBSAN_ALIGNMENT remained > > a noisy UBSAN option. Disable it for COMPILE_TEST so the rest of UBSAN > > can be used for full all*config builds or other large combinations. > > > > Link: https://lore.kernel.org/lkml/CAHk-=wgXW=YLxGN0QVpp-1w5GDd2pf1W-FqY15poKzoVfik2qA@mail.gmail.com/ > > Signed-off-by: Kees Cook <keescook@chromium.org> > > Have you checked if this has a notable impact on allmodconfig compile speed > with gcc or clang? I think I've seen significant increases in build times before > with this, but I don't remember the actual magnitude. > > Making it 20% slower would probably be ok, but making it twice as slow might > be too much. For an x86_64 gcc allmodconfig before, I was seeing around 6m2s. After, I'm seeing around 6m17s, so that's about 8% longer build time. I will double-check clang...
On Thu, Dec 03, 2020 at 09:51:40AM +0100, Arnd Bergmann wrote: > On Thu, Dec 3, 2020 at 1:44 AM Kees Cook <keescook@chromium.org> wrote: > > > > With UBSAN_OBJECT_SIZE disabled for GCC, only UBSAN_ALIGNMENT remained > > a noisy UBSAN option. Disable it for COMPILE_TEST so the rest of UBSAN > > can be used for full all*config builds or other large combinations. > > > > Link: https://lore.kernel.org/lkml/CAHk-=wgXW=YLxGN0QVpp-1w5GDd2pf1W-FqY15poKzoVfik2qA@mail.gmail.com/ > > Signed-off-by: Kees Cook <keescook@chromium.org> > > Have you checked if this has a notable impact on allmodconfig compile speed > with gcc or clang? I think I've seen significant increases in build times before > with this, but I don't remember the actual magnitude. > > Making it 20% slower would probably be ok, but making it twice as slow might > be too much. And for Clang, it's about 7m40s before and 8m30s after, so roughly 12% slower.
On Wed, Dec 9, 2020 at 7:46 PM Kees Cook <keescook@chromium.org> wrote: > > On Thu, Dec 03, 2020 at 09:51:40AM +0100, Arnd Bergmann wrote: > > On Thu, Dec 3, 2020 at 1:44 AM Kees Cook <keescook@chromium.org> wrote: > > > > > > With UBSAN_OBJECT_SIZE disabled for GCC, only UBSAN_ALIGNMENT remained > > > a noisy UBSAN option. Disable it for COMPILE_TEST so the rest of UBSAN > > > can be used for full all*config builds or other large combinations. > > > > > > Link: https://lore.kernel.org/lkml/CAHk-=wgXW=YLxGN0QVpp-1w5GDd2pf1W-FqY15poKzoVfik2qA@mail.gmail.com/ > > > Signed-off-by: Kees Cook <keescook@chromium.org> > > > > Have you checked if this has a notable impact on allmodconfig compile speed > > with gcc or clang? I think I've seen significant increases in build times before > > with this, but I don't remember the actual magnitude. > > > > Making it 20% slower would probably be ok, but making it twice as slow might > > be too much. > > And for Clang, it's about 7m40s before and 8m30s after, so roughly 12% slower. Ok, that doesn't sound too bad then. Arnd
diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan index 6e8b67d4b0d9..fa78f0f3c1dc 100644 --- a/lib/Kconfig.ubsan +++ b/lib/Kconfig.ubsan @@ -130,7 +130,6 @@ config UBSAN_ENUM config UBSAN_SANITIZE_ALL bool "Enable instrumentation for the entire kernel" depends on ARCH_HAS_UBSAN_SANITIZE_ALL - depends on !COMPILE_TEST default y help This option activates instrumentation for the entire kernel. @@ -142,7 +141,7 @@ config UBSAN_SANITIZE_ALL config UBSAN_ALIGNMENT bool "Enable checks for pointers alignment" default !HAVE_EFFICIENT_UNALIGNED_ACCESS - depends on !UBSAN_TRAP + depends on !UBSAN_TRAP && !COMPILE_TEST depends on $(cc-option,-fsanitize=alignment) help This option enables the check of unaligned memory accesses.
With UBSAN_OBJECT_SIZE disabled for GCC, only UBSAN_ALIGNMENT remained a noisy UBSAN option. Disable it for COMPILE_TEST so the rest of UBSAN can be used for full all*config builds or other large combinations. Link: https://lore.kernel.org/lkml/CAHk-=wgXW=YLxGN0QVpp-1w5GDd2pf1W-FqY15poKzoVfik2qA@mail.gmail.com/ Signed-off-by: Kees Cook <keescook@chromium.org> --- lib/Kconfig.ubsan | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)