~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/lib/Kconfig.kmsan

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /lib/Kconfig.kmsan (Version linux-6.12-rc7) and /lib/Kconfig.kmsan (Version linux-6.11.7)


  1 # SPDX-License-Identifier: GPL-2.0-only             1 # SPDX-License-Identifier: GPL-2.0-only
  2 config HAVE_ARCH_KMSAN                              2 config HAVE_ARCH_KMSAN
  3         bool                                        3         bool
  4                                                     4 
  5 config HAVE_KMSAN_COMPILER                          5 config HAVE_KMSAN_COMPILER
  6         # Clang versions <14.0.0 also support       6         # Clang versions <14.0.0 also support -fsanitize=kernel-memory, but not
  7         # all the features necessary to build       7         # all the features necessary to build the kernel with KMSAN.
  8         depends on CC_IS_CLANG && CLANG_VERSIO      8         depends on CC_IS_CLANG && CLANG_VERSION >= 140000
  9         def_bool $(cc-option,-fsanitize=kernel      9         def_bool $(cc-option,-fsanitize=kernel-memory -mllvm -msan-disable-checks=1)
 10                                                    10 
 11 config KMSAN                                       11 config KMSAN
 12         bool "KMSAN: detector of uninitialized     12         bool "KMSAN: detector of uninitialized values use"
 13         depends on HAVE_ARCH_KMSAN && HAVE_KMS     13         depends on HAVE_ARCH_KMSAN && HAVE_KMSAN_COMPILER
 14         depends on DEBUG_KERNEL && !KASAN && !     14         depends on DEBUG_KERNEL && !KASAN && !KCSAN
 15         depends on !PREEMPT_RT                     15         depends on !PREEMPT_RT
 16         select STACKDEPOT                          16         select STACKDEPOT
 17         select STACKDEPOT_ALWAYS_INIT              17         select STACKDEPOT_ALWAYS_INIT
 18         help                                       18         help
 19           KernelMemorySanitizer (KMSAN) is a d     19           KernelMemorySanitizer (KMSAN) is a dynamic detector of uses of
 20           uninitialized values in the kernel.      20           uninitialized values in the kernel. It is based on compiler
 21           instrumentation provided by Clang an     21           instrumentation provided by Clang and thus requires Clang to build.
 22                                                    22 
 23           An important note is that KMSAN is n     23           An important note is that KMSAN is not intended for production use,
 24           because it drastically increases ker     24           because it drastically increases kernel memory footprint and slows
 25           the whole system down.                   25           the whole system down.
 26                                                    26 
 27           See <file:Documentation/dev-tools/km     27           See <file:Documentation/dev-tools/kmsan.rst> for more details.
 28                                                    28 
 29 if KMSAN                                           29 if KMSAN
 30                                                    30 
 31 config HAVE_KMSAN_PARAM_RETVAL                     31 config HAVE_KMSAN_PARAM_RETVAL
 32         # -fsanitize-memory-param-retval is su     32         # -fsanitize-memory-param-retval is supported only by Clang >= 14.
 33         depends on HAVE_KMSAN_COMPILER             33         depends on HAVE_KMSAN_COMPILER
 34         def_bool $(cc-option,-fsanitize=kernel     34         def_bool $(cc-option,-fsanitize=kernel-memory -fsanitize-memory-param-retval)
 35                                                    35 
 36 config KMSAN_CHECK_PARAM_RETVAL                    36 config KMSAN_CHECK_PARAM_RETVAL
 37         bool "Check for uninitialized values p     37         bool "Check for uninitialized values passed to and returned from functions"
 38         default y                                  38         default y
 39         depends on HAVE_KMSAN_PARAM_RETVAL         39         depends on HAVE_KMSAN_PARAM_RETVAL
 40         help                                       40         help
 41           If the compiler supports -fsanitize-     41           If the compiler supports -fsanitize-memory-param-retval, KMSAN will
 42           eagerly check every function paramet     42           eagerly check every function parameter passed by value and every
 43           function return value.                   43           function return value.
 44                                                    44 
 45           Disabling KMSAN_CHECK_PARAM_RETVAL w     45           Disabling KMSAN_CHECK_PARAM_RETVAL will result in tracking shadow for
 46           function parameters and return value     46           function parameters and return values across function borders. This
 47           is a more relaxed mode, but it gener     47           is a more relaxed mode, but it generates more instrumentation code and
 48           may potentially report errors in cor     48           may potentially report errors in corner cases when non-instrumented
 49           functions call instrumented ones.        49           functions call instrumented ones.
 50                                                    50 
 51 config KMSAN_KUNIT_TEST                            51 config KMSAN_KUNIT_TEST
 52         tristate "KMSAN integration test suite     52         tristate "KMSAN integration test suite" if !KUNIT_ALL_TESTS
 53         default KUNIT_ALL_TESTS                    53         default KUNIT_ALL_TESTS
 54         depends on TRACEPOINTS && KUNIT            54         depends on TRACEPOINTS && KUNIT
 55         help                                       55         help
 56           Test suite for KMSAN, testing variou     56           Test suite for KMSAN, testing various error detection scenarios,
 57           and checking that reports are correc     57           and checking that reports are correctly output to console.
 58                                                    58 
 59           Say Y here if you want the test to b     59           Say Y here if you want the test to be built into the kernel and run
 60           during boot; say M if you want the t     60           during boot; say M if you want the test to build as a module; say N
 61           if you are unsure.                       61           if you are unsure.
 62                                                    62 
 63 endif                                              63 endif
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php