kfree_rcu_{monitor,work} hogged CPU for >13333us

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux