| .. | .. |
|---|
| 897 | 897 | is currently disabled). Drivers need to handle this correctly. Some |
|---|
| 898 | 898 | don't and need to be caught. |
|---|
| 899 | 899 | |
|---|
| 900 | +config DEBUG_IRQ_PIPELINE |
|---|
| 901 | + bool "Debug IRQ pipeline" |
|---|
| 902 | + depends on IRQ_PIPELINE && DEBUG_KERNEL |
|---|
| 903 | + help |
|---|
| 904 | + Turn on this option for enabling debug checks related to |
|---|
| 905 | + interrupt pipelining, like interrupt state consistency and |
|---|
| 906 | + proper context isolation between the in-band and oob stages. |
|---|
| 907 | + |
|---|
| 908 | + If unsure, say N. |
|---|
| 909 | + |
|---|
| 910 | +config IRQ_PIPELINE_TORTURE_TEST |
|---|
| 911 | + bool "Torture tests for IRQ pipeline" |
|---|
| 912 | + depends on DEBUG_IRQ_PIPELINE |
|---|
| 913 | + select TORTURE_TEST |
|---|
| 914 | + default n |
|---|
| 915 | + help |
|---|
| 916 | + This option provides a kernel module that runs torture tests |
|---|
| 917 | + on the IRQ pipeline mechanism. |
|---|
| 918 | + |
|---|
| 919 | + Say Y here if you want the IRQ pipeline torture tests to run |
|---|
| 920 | + when the kernel starts. Say N if you are unsure. |
|---|
| 921 | + |
|---|
| 922 | +config DEBUG_DOVETAIL |
|---|
| 923 | + bool "Debug Dovetail interface" |
|---|
| 924 | + depends on DOVETAIL && DEBUG_KERNEL |
|---|
| 925 | + select DEBUG_IRQ_PIPELINE |
|---|
| 926 | + help |
|---|
| 927 | + Turn on this option for enabling debug checks related to |
|---|
| 928 | + running a dual kernel configuration, aka dovetailing. This |
|---|
| 929 | + option implicitly enables the interrupt pipeline debugging |
|---|
| 930 | + features. |
|---|
| 931 | + |
|---|
| 900 | 932 | menu "Debug Oops, Lockups and Hangs" |
|---|
| 901 | 933 | |
|---|
| 902 | 934 | config PANIC_ON_OOPS |
|---|
| .. | .. |
|---|
| 1315 | 1347 | spin_lock_init()/mutex_init()/etc., or whether there is any lock |
|---|
| 1316 | 1348 | held during task exit. |
|---|
| 1317 | 1349 | |
|---|
| 1350 | +config DEBUG_HARD_LOCKS |
|---|
| 1351 | + bool "Debug hard spinlocks" |
|---|
| 1352 | + depends on DEBUG_IRQ_PIPELINE && LOCKDEP && EXPERT |
|---|
| 1353 | + help |
|---|
| 1354 | + Turn on this option for enabling LOCKDEP for hard spinlock |
|---|
| 1355 | + types used in interrupt pipelining. |
|---|
| 1356 | + |
|---|
| 1357 | + Keep in mind that enabling such feature will ruin the |
|---|
| 1358 | + latency figures for any out-of-band code, this is merely |
|---|
| 1359 | + useful for proving the correctness of the locking scheme of |
|---|
| 1360 | + such code without any consideration for real-time |
|---|
| 1361 | + guarantees. You have been warned. |
|---|
| 1362 | + |
|---|
| 1363 | + If unsure, say N. |
|---|
| 1364 | + |
|---|
| 1365 | +if DEBUG_HARD_LOCKS |
|---|
| 1366 | +comment "WARNING! DEBUG_HARD_LOCKS induces **massive** latency" |
|---|
| 1367 | +comment "overhead for the code running on the out-of-band" |
|---|
| 1368 | +comment "interrupt stage." |
|---|
| 1369 | +endif |
|---|
| 1370 | + |
|---|
| 1318 | 1371 | config LOCKDEP |
|---|
| 1319 | 1372 | bool |
|---|
| 1320 | 1373 | depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT |
|---|