From: Erik H. <eri...@er...> - 2012-10-19 07:28:53
|
The global overload limit in TIPC need to be removed. Currently, this is defined to 5000 messages, and Two limits are enforced based on this constraint, one global on node level and one per socket. The socket level limit is unnecessary since each socket already have a hard restriction for how much data can be queued based on receive buffer fill level and the port-level flow control will prevent a fast sender from overrunning a slow receiver. The node level limit does not serve any functional purpose, but rather creates a bug on on nodes that spawns a lot of server sockets, typically a listen server in a larger cluster. The global node overload protection will cause unexpected and unnecessary connection drops when messages are rejected, even if the receiving socket have space to hold the packet. I hope you agree with me that this is serious since it renders TIPC unusable for "heavy users". I plan to post a patch that removes this if the weekend soak-testing goes well. //E PS. Another reason to remove it is the TIPC virtual device feature that i have been fiddling around with. It cannot function properly with this in place since it pulls skb's directly from the sockets sk_receive_queue, modifies them and passes it on to the device layer. |