ros / ros_comm

ROS communications-related packages, including core client libraries (roscpp, rospy, roslisp) and graph introspection tools (rostopic, rosnode, rosservice, rosparam).
http://wiki.ros.org/ros_comm
764 stars 912 forks source link

The publish() function has been executed but sock_sendmsg() was not been called until after 100ms #2344

Open littlebr369 opened 1 year ago

littlebr369 commented 1 year ago

We have two chips communicating with each other, one is nvidia's xavier and the other is an intel chip. The xaiver chip sends a message to the intel chip through ros, and the frequency is 100hz.

But occasionally, no message can be sent within 100ms. We have accurately located the publish() function of ros already executed but not the sock_sendmsg() function in kernel. After 100ms, 10 stacked messages will be sent meanwhile sock_sendmsg() will execute 10 times.

I noticed that pollset has an .update(100) with a cycle of 100ms. Does this have anything to do with the problem? What are the possibilities about this problem?