Blocked tasks due to CPU starvation from spinlock contention in pipe waitqueues
Issue
- System log shows blocked tasks:
INFO: task updatedb:10673 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
updatedb D ffffffff80153806 0 10673 10648 (NOTLB)
ffff810193747e88 0000000000000082 ffff810193747ea8 ffffffff8000da09
ffff81025b32a150 000000000000000a ffff8102ff8eb0c0 ffff8101b1f667a0
0013a734e43702c9 00000000000052d0 ffff8102ff8eb2a8 0000000dffffff9c
Call Trace:
[<ffffffff8000da09>] permission+0x81/0xc8
[<ffffffff8002319a>] file_move+0x36/0x44
[<ffffffff800258ae>] filldir+0x0/0xb7
[<ffffffff80063c4f>] __mutex_lock_slowpath+0x60/0x9b
[<ffffffff80063c99>] .text.lock.mutex+0xf/0x14
[<ffffffff80035379>] vfs_readdir+0x5c/0xa9
[<ffffffff80038c2d>] sys_getdents+0x75/0xbd
[<ffffffff8005d229>] tracesys+0x71/0xe0
[<ffffffff8005d28d>] tracesys+0xd5/0xe0
Environment
- Red Hat Enterprise Linux 5.6
- Application using select() system call on pipes
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.