We fix a very real starvation problem that may occur when a link encounters send buffer congestion. At the same time we make the interaction between the socket and link layer simpler and more consistent.
v2: - Simplified link congestion check to only check against own importance limit. This reduces the risk of higher levels starving out lower levels. v3: - Adding one sent message to to link backlog queue even if there is congestion, as suggested by Partha. - Allowing link_wakeup() loop to continue adding messages to the backlog queue even if one or more levels are congested. This seems to have a positive effect on performance. v4: - Added Partha's fixes, except for #4. I think having a multicast being blocked after unicast link congestion is an acceptable behavior when weighed against the risks of just purging the congestion list. Jon Maloy (3): tipc: unify tipc_wait_for_sndpkt() and tipc_wait_for_sndmsg() functions tipc: modify struct tipc_plist to be more versatile tipc: reduce risk of user starvation during link congestion net/tipc/bcast.c | 6 +- net/tipc/link.c | 75 ++++----- net/tipc/msg.h | 2 - net/tipc/name_table.c | 100 +++++++---- net/tipc/name_table.h | 21 +-- net/tipc/node.c | 15 +- net/tipc/socket.c | 449 ++++++++++++++++++++++---------------------------- 7 files changed, 319 insertions(+), 349 deletions(-) -- 2.7.4 ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today.http://sdm.link/intel _______________________________________________ tipc-discussion mailing list tipc-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tipc-discussion