1.. SPDX-License-Identifier: GPL-2.0 2 3============================================================ 4Provoking crashes with Linux Kernel Dump Test Module (LKDTM) 5============================================================ 6 7The lkdtm module provides an interface to disrupt (and usually crash) 8the kernel at predefined code locations to evaluate the reliability of 9the kernel's exception handling and to test crash dumps obtained using 10different dumping solutions. The module uses KPROBEs to instrument the 11trigger location, but can also trigger the kernel directly without KPROBE 12support via debugfs. 13 14You can select the location of the trigger ("crash point name") and the 15type of action ("crash point type") either through module arguments when 16inserting the module, or through the debugfs interface. 17 18Usage:: 19 20 insmod lkdtm.ko [recur_count={>0}] cpoint_name=<> cpoint_type=<> 21 [cpoint_count={>0}] 22 23recur_count 24 Recursion level for the stack overflow test. By default this is 25 dynamically calculated based on kernel configuration, with the 26 goal of being just large enough to exhaust the kernel stack. The 27 value can be seen at `/sys/module/lkdtm/parameters/recur_count`. 28 29cpoint_name 30 Where in the kernel to trigger the action. It can be 31 one of INT_HARDWARE_ENTRY, INT_HW_IRQ_EN, INT_TASKLET_ENTRY, 32 FS_DEVRW, MEM_SWAPOUT, TIMERADD, SCSI_DISPATCH_CMD, 33 IDE_CORE_CP, or DIRECT 34 35cpoint_type 36 Indicates the action to be taken on hitting the crash point. 37 These are numerous, and best queried directly from debugfs. Some 38 of the common ones are PANIC, BUG, EXCEPTION, LOOP, and OVERFLOW. 39 See the contents of `/sys/kernel/debug/provoke-crash/DIRECT` for 40 a complete list. 41 42cpoint_count 43 Indicates the number of times the crash point is to be hit 44 before triggering the action. The default is 10 (except for 45 DIRECT, which always fires immediately). 46 47You can also induce failures by mounting debugfs and writing the type to 48<debugfs>/provoke-crash/<crashpoint>. E.g.:: 49 50 mount -t debugfs debugfs /sys/kernel/debug 51 echo EXCEPTION > /sys/kernel/debug/provoke-crash/INT_HARDWARE_ENTRY 52 53The special file `DIRECT` will induce the action directly without KPROBE 54instrumentation. This mode is the only one available when the module is 55built for a kernel without KPROBEs support:: 56 57 # Instead of having a BUG kill your shell, have it kill "cat": 58 cat <(echo WRITE_RO) >/sys/kernel/debug/provoke-crash/DIRECT 59