mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	kcsan: Add test suite
This adds KCSAN test focusing on behaviour of the integrated runtime. Tests various race scenarios, and verifies the reports generated to console. Makes use of KUnit for test organization, and the Torture framework for test thread control. Signed-off-by: Marco Elver <elver@google.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
		
							parent
							
								
									c93773c1a3
								
							
						
					
					
						commit
						1fe84fd4a4
					
				
					 3 changed files with 1109 additions and 1 deletions
				
			
		| 
						 | 
					@ -12,3 +12,6 @@ CFLAGS_core.o := $(call cc-option,-fno-conserve-stack,) \
 | 
				
			||||||
 | 
					
 | 
				
			||||||
obj-y := core.o debugfs.o report.o
 | 
					obj-y := core.o debugfs.o report.o
 | 
				
			||||||
obj-$(CONFIG_KCSAN_SELFTEST) += test.o
 | 
					obj-$(CONFIG_KCSAN_SELFTEST) += test.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CFLAGS_kcsan-test.o := $(CFLAGS_KCSAN) -g -fno-omit-frame-pointer
 | 
				
			||||||
 | 
					obj-$(CONFIG_KCSAN_TEST) += kcsan-test.o
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1084
									
								
								kernel/kcsan/kcsan-test.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1084
									
								
								kernel/kcsan/kcsan-test.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -59,7 +59,28 @@ config KCSAN_SELFTEST
 | 
				
			||||||
	bool "Perform short selftests on boot"
 | 
						bool "Perform short selftests on boot"
 | 
				
			||||||
	default y
 | 
						default y
 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
	  Run KCSAN selftests on boot. On test failure, causes the kernel to panic.
 | 
						  Run KCSAN selftests on boot. On test failure, causes the kernel to
 | 
				
			||||||
 | 
						  panic. Recommended to be enabled, ensuring critical functionality
 | 
				
			||||||
 | 
						  works as intended.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					config KCSAN_TEST
 | 
				
			||||||
 | 
						tristate "KCSAN test for integrated runtime behaviour"
 | 
				
			||||||
 | 
						depends on TRACEPOINTS && KUNIT
 | 
				
			||||||
 | 
						select TORTURE_TEST
 | 
				
			||||||
 | 
						help
 | 
				
			||||||
 | 
						  KCSAN test focusing on behaviour of the integrated runtime. Tests
 | 
				
			||||||
 | 
						  various race scenarios, and verifies the reports generated to
 | 
				
			||||||
 | 
						  console. Makes use of KUnit for test organization, and the Torture
 | 
				
			||||||
 | 
						  framework for test thread control.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  Each test case may run at least up to KCSAN_REPORT_ONCE_IN_MS
 | 
				
			||||||
 | 
						  milliseconds. Test run duration may be optimized by building the
 | 
				
			||||||
 | 
						  kernel and KCSAN test with KCSAN_REPORT_ONCE_IN_MS set to a lower
 | 
				
			||||||
 | 
						  than default value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						  Say Y here if you want the test to be built into the kernel and run
 | 
				
			||||||
 | 
						  during boot; say M if you want the test to build as a module; say N
 | 
				
			||||||
 | 
						  if you are unsure.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config KCSAN_EARLY_ENABLE
 | 
					config KCSAN_EARLY_ENABLE
 | 
				
			||||||
	bool "Early enable during boot"
 | 
						bool "Early enable during boot"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue