0

I am running a high performance application on Centos 7.4 op system 3.10 with RT kernel. Sometimes a few process falling into 'D' status(uninterruptible), such as systemd、runc init、umount. The stack of them is similar,and the first three levels are exactly same.

wait_rcu_gp+0x5e/0x80
synchronize_rcu.part.46+0x1f/0x40
synchronize_rcu+0x18/0x20
namespace_unlock+0x68/0x80
SyS_umount+0x25c/0440
system_call_fastpath+0x25/0x2a

The number of 'D' process is keep rising until the server got stuck. At that moment, ssh doesn't work,but ping is still working.

I did a little research about rcu,it's like a specific lock used by kernel. I use this cmd to search anything about rcu, "trace-cmd list -f|grep synchronize". The result is

get_state_synchronize_rcu
synchronize_rcu_expedited
synchronize_rcu.part.46
synchronize_rcu 

It means the 'synchronize_rcu.part.46' is a specific function, but I can't find it in kernel code. Does anyone was dealing with the same situation?

0 Answers0