stallwarn.rst (dd84cfff3cc3b79c9d616f85bd1178df135cbd1a) stallwarn.rst (e67198cc05b8ecbb7b8e2d8ef9fb5c8d26821873)
1.. SPDX-License-Identifier: GPL-2.0
2
3==============================
4Using RCU's CPU Stall Detector
5==============================
6
7This document first discusses what sorts of issues RCU's CPU stall
8detector can locate, and then discusses kernel parameters and Kconfig

--- 83 unchanged lines hidden (view full) ---

92 buggy timer hardware through bugs in the interrupt or exception
93 path (whether hardware, firmware, or software) through bugs
94 in Linux's timer subsystem through bugs in the scheduler, and,
95 yes, even including bugs in RCU itself. It can also result in
96 the ``rcu_.*timer wakeup didn't happen for`` console-log message,
97 which will include additional debugging information.
98
99- A low-level kernel issue that either fails to invoke one of the
1.. SPDX-License-Identifier: GPL-2.0
2
3==============================
4Using RCU's CPU Stall Detector
5==============================
6
7This document first discusses what sorts of issues RCU's CPU stall
8detector can locate, and then discusses kernel parameters and Kconfig

--- 83 unchanged lines hidden (view full) ---

92 buggy timer hardware through bugs in the interrupt or exception
93 path (whether hardware, firmware, or software) through bugs
94 in Linux's timer subsystem through bugs in the scheduler, and,
95 yes, even including bugs in RCU itself. It can also result in
96 the ``rcu_.*timer wakeup didn't happen for`` console-log message,
97 which will include additional debugging information.
98
99- A low-level kernel issue that either fails to invoke one of the
100 variants of rcu_user_enter(), rcu_user_exit(), rcu_idle_enter(),
101 rcu_idle_exit(), rcu_irq_enter(), or rcu_irq_exit() on the one
100 variants of rcu_user_enter(), rcu_user_exit(), ct_idle_enter(),
101 ct_idle_exit(), rcu_irq_enter(), or rcu_irq_exit() on the one
102 hand, or that invokes one of them too many times on the other.
103 Historically, the most frequent issue has been an omission
104 of either irq_enter() or irq_exit(), which in turn invoke
105 rcu_irq_enter() or rcu_irq_exit(), respectively. Building your
106 kernel with CONFIG_RCU_EQS_DEBUG=y can help track down these types
107 of issues, which sometimes arise in architecture-specific code.
108
109- A bug in the RCU implementation.

--- 276 unchanged lines hidden ---
102 hand, or that invokes one of them too many times on the other.
103 Historically, the most frequent issue has been an omission
104 of either irq_enter() or irq_exit(), which in turn invoke
105 rcu_irq_enter() or rcu_irq_exit(), respectively. Building your
106 kernel with CONFIG_RCU_EQS_DEBUG=y can help track down these types
107 of issues, which sometimes arise in architecture-specific code.
108
109- A bug in the RCU implementation.

--- 276 unchanged lines hidden ---