provoke-crashes.rst 2.3 KB

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