Hello,
I have some systems with CONFIG_WQ_CPU_INTENSIVE_REPORT enabled, and rcu
workqeues are in the top offenders with the following messages:
workqueue: kfree_rcu_monitor hogged CPU for >13333us 515 times,
consider switching to WQ_UNBOUND
workqueue: kfree_rcu_work hogged CPU for >13333us 1027 times, consider
switching to WQ_UNBOUND
Chatting to Paul privately, he suggested me getting the time spend in
the two workqueues/functions above, and I created the following script
to get the histogram for these two functions:
https://github.com/leitao/debug/blob/main/examples/rcu_timer/rcu-timer.bt
And this is the histogram I get, when running it for a few minutes
(where the lines are in msecs):
== monitor ==
@all_monitor:
[8, 16) 59 |@@@@@
|
[16, 32) 300 |@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
[32, 64) 2 |
|
[64, 128) 7 |
|
[128, 256) 51 |@@@@
|
[256, 512) 157 |@@@@@@@@@@@@@@
|
[512, 1K) 356 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
[1K, 2K) 381 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
[2K, 4K) 480 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
[4K, 8K) 567
|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[8K, 16K) 263 |@@@@@@@@@@@@@@@@@@@@@@@@
|
[16K, 32K) 25 |@@
|
[32K, 64K) 3 |
|
== work ==
@all_work:
[32, 64) 27 |@@@@@@@@@
|
[64, 128) 2 |
|
[128, 256) 1 |
|
[256, 512) 7 |@@
|
[512, 1K) 15 |@@@@@
|
[1K, 2K) 24 |@@@@@@@@
|
[2K, 4K) 32 |@@@@@@@@@@
|
[4K, 8K) 46 |@@@@@@@@@@@@@@@
|
[8K, 16K) 154
|@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[16K, 32K) 85 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
[32K, 64K) 3 |@
|
I also broke it down for pid if it is useflu, and the output could be
found at:
https://paste.debian.net/1324062/
Thanks
--breno