1 .. SPDX-License-Identifier: GPL-2.0 !! 1 =============== >> 2 Provoke crashes >> 3 =============== >> 4 >> 5 The lkdtm module provides an interface to crash or injure the kernel at >> 6 predefined crashpoints to evaluate the reliability of crash dumps obtained >> 7 using different dumping solutions. The module uses KPROBEs to instrument >> 8 crashing points, but can also crash the kernel directly without KRPOBE >> 9 support. 2 10 3 ============================================== !! 11 4 Provoking crashes with Linux Kernel Dump Test !! 12 You can provide the way either through module arguments when inserting 5 ============================================== !! 13 the module, or through a debugfs interface. 6 << 7 The lkdtm module provides an interface to disr << 8 the kernel at predefined code locations to eva << 9 the kernel's exception handling and to test cr << 10 different dumping solutions. The module uses K << 11 trigger location, but can also trigger the ker << 12 support via debugfs. << 13 << 14 You can select the location of the trigger ("c << 15 type of action ("crash point type") either thr << 16 inserting the module, or through the debugfs i << 17 14 18 Usage:: 15 Usage:: 19 16 20 insmod lkdtm.ko [recur_count={>0}] cpo 17 insmod lkdtm.ko [recur_count={>0}] cpoint_name=<> cpoint_type=<> 21 [cpoint_count={>0}] 18 [cpoint_count={>0}] 22 19 23 recur_count 20 recur_count 24 Recursion level for the stack overflow !! 21 Recursion level for the stack overflow test. Default is 10. 25 dynamically calculated based on kernel << 26 goal of being just large enough to exh << 27 value can be seen at `/sys/module/lkdt << 28 22 29 cpoint_name 23 cpoint_name 30 Where in the kernel to trigger the act !! 24 Crash point where the kernel is to be crashed. It can be 31 one of INT_HARDWARE_ENTRY, INT_HW_IRQ_ 25 one of INT_HARDWARE_ENTRY, INT_HW_IRQ_EN, INT_TASKLET_ENTRY, 32 FS_SUBMIT_BH, MEM_SWAPOUT, TIMERADD, S !! 26 FS_DEVRW, MEM_SWAPOUT, TIMERADD, SCSI_DISPATCH_CMD, >> 27 IDE_CORE_CP, DIRECT 33 28 34 cpoint_type 29 cpoint_type 35 Indicates the action to be taken on hi 30 Indicates the action to be taken on hitting the crash point. 36 These are numerous, and best queried d !! 31 It can be one of PANIC, BUG, EXCEPTION, LOOP, OVERFLOW, 37 of the common ones are PANIC, BUG, EXC !! 32 CORRUPT_STACK, UNALIGNED_LOAD_STORE_WRITE, OVERWRITE_ALLOCATION, 38 See the contents of `/sys/kernel/debug !! 33 WRITE_AFTER_FREE, 39 a complete list. << 40 34 41 cpoint_count 35 cpoint_count 42 Indicates the number of times the cras 36 Indicates the number of times the crash point is to be hit 43 before triggering the action. The defa !! 37 to trigger an action. The default is 10. 44 DIRECT, which always fires immediately << 45 38 46 You can also induce failures by mounting debug 39 You can also induce failures by mounting debugfs and writing the type to 47 <debugfs>/provoke-crash/<crashpoint>. E.g.:: !! 40 <mountpoint>/provoke-crash/<crashpoint>. E.g.:: 48 41 49 mount -t debugfs debugfs /sys/kernel/debug !! 42 mount -t debugfs debugfs /mnt 50 echo EXCEPTION > /sys/kernel/debug/provoke-c !! 43 echo EXCEPTION > /mnt/provoke-crash/INT_HARDWARE_ENTRY 51 44 52 The special file `DIRECT` will induce the acti << 53 instrumentation. This mode is the only one ava << 54 built for a kernel without KPROBEs support:: << 55 45 56 # Instead of having a BUG kill your shell, h !! 46 A special file is `DIRECT` which will induce the crash directly without 57 cat <(echo WRITE_RO) >/sys/kernel/debug/prov !! 47 KPROBE instrumentation. This mode is the only one available when the module >> 48 is built on a kernel without KPROBEs support.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.