-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rcu: Add RCU stall diagnosis information #18
base: rcu-dev
Are you sure you want to change the base?
Conversation
Master branch: 54a118f |
Master branch: 54a118f |
c83c922
to
ad723e6
Compare
Master branch: 54a118f |
ad723e6
to
56057a7
Compare
Master branch: 54a118f |
56057a7
to
a270b06
Compare
Master branch: 54a118f |
a270b06
to
ecb607e
Compare
Master branch: 54a118f |
ecb607e
to
265b145
Compare
Master branch: 54a118f |
265b145
to
3d6a081
Compare
Master branch: 54a118f |
3d6a081
to
453a959
Compare
Master branch: 54a118f |
453a959
to
168f792
Compare
Master branch: 54a118f |
168f792
to
988b5e3
Compare
Master branch: 54a118f |
988b5e3
to
ab0dbc8
Compare
Master branch: 54a118f |
ab0dbc8
to
6bb79dd
Compare
Master branch: 54a118f |
6bb79dd
to
53c32f8
Compare
Master branch: 54a118f |
53c32f8
to
7914328
Compare
22ada48
to
5e32782
Compare
Master branch: fa70e60 |
5e32782
to
8e92346
Compare
Master branch: fa70e60 |
8e92346
to
a879cb4
Compare
Master branch: fa70e60 |
a879cb4
to
748121f
Compare
Master branch: fa70e60 |
748121f
to
ace74c2
Compare
Master branch: fa70e60 |
ace74c2
to
aef0813
Compare
Master branch: fa70e60 |
aef0813
to
a15d4b2
Compare
Master branch: fa70e60 |
a15d4b2
to
19600b0
Compare
Master branch: fa70e60 |
19600b0
to
1cd1a12
Compare
Master branch: fa70e60 |
1cd1a12
to
fbc41cb
Compare
Master branch: fa70e60 |
fbc41cb
to
895146d
Compare
Master branch: fa70e60 |
895146d
to
55f7614
Compare
Master branch: fa70e60 |
55f7614
to
4883809
Compare
Similar to kstat_cpu_irqs_sum(), it counts the sum of all software interrupts on a specified CPU. Signed-off-by: Zhen Lei <[email protected]>
Returns the number of context switches on the specified CPU, which can be used to diagnose rcu stall. Signed-off-by: Zhen Lei <[email protected]>
In some extreme cases, such as the I/O pressure test, the CPU usage may be 100%, causing RCU stall. In this case, the printed information about current is not useful. Displays the number and usage of hard interrupts, soft interrupts, and context switches that are generated within half of the CPU stall timeout, can help us make a general judgment. In other cases, we can preliminarily determine whether an infinite loop occurs when local_irq, local_bh or preempt is disabled. For example: rcu: INFO: rcu_preempt self-detected stall on CPU rcu: 0-....: (1250 ticks this GP) <omitted> rcu: hardirqs softirqs csw/system rcu: number: 624 45 0 rcu: cputime: 69 1 2425 ==> 2500(ms) The example above shows that the number of hard and soft interrupts is small, there is zero context switching, and the system takes up a lot of time. We can quickly conclude that the current task is infinitely looped with preempt_disable(). The impact on system performance is negligible because snapshot is recorded only one time after 1/2 CPU stall timeout. Signed-off-by: Zhen Lei <[email protected]>
Master branch: fa70e60 |
4883809
to
8b2b698
Compare
Pull request for series with
subject: rcu: Add RCU stall diagnosis information
version: 1
url: https://patchwork.kernel.org/project/rcu/list/?series=685780