netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, allan.stephens@windriver.com,
	ying.xue@windriver.com,
	Paul Gortmaker <paul.gortmaker@windriver.com>
Subject: [PATCH net-next 10/28] tipc: Prevent broadcast link stalling when another node fails
Date: Sat, 17 Sep 2011 23:32:06 -0400	[thread overview]
Message-ID: <1316316744-29514-11-git-send-email-paul.gortmaker@windriver.com> (raw)
In-Reply-To: <1316316744-29514-1-git-send-email-paul.gortmaker@windriver.com>

From: Allan Stephens <allan.stephens@windriver.com>

Ensure that broadcast link messages that have not been acknowledged
by a newly failed node do not get an implied acknowledgement until the
failed node is removed from the broadcast link's map of reachable nodes.

Previously, a race condition allowed a new broadcast link message to be
sent after the implicit acknowledgement processing was completed, but
before the map of reachable nodes was updated, resulting in the message
having an expected acknowledgement count that required the failed node
to explicitly acknowledge the message. Since this would never occur
the new message would remain in the broadcast link's transmit queue
forever, eventually causing the link to become congested and "stall".
Delaying the implicit acknowledgement processing until after the update
of the map of reachable nodes eliminates this race condition and prevents
stalling.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 net/tipc/node.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/tipc/node.c b/net/tipc/node.c
index 810b395..d75432f 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -349,9 +349,9 @@ static void node_lost_contact(struct tipc_node *n_ptr)
 			n_ptr->bclink.defragm = NULL;
 		}
 
+		tipc_nmap_remove(&tipc_bcast_nmap, n_ptr->addr);
 		tipc_bclink_acknowledge(n_ptr,
 					mod(n_ptr->bclink.acked + 10000));
-		tipc_nmap_remove(&tipc_bcast_nmap, n_ptr->addr);
 		if (n_ptr->addr < tipc_own_addr)
 			tipc_own_tag--;
 
-- 
1.7.4.4

  parent reply	other threads:[~2011-09-18  3:32 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-18  3:31 [PATCH net-next 00/28] misc. TIPC updates for what will be 3.2 Paul Gortmaker
2011-09-18  3:31 ` [PATCH net-next 01/28] tipc: Remove obsolete manipulation of message re-route count field Paul Gortmaker
2011-09-18  3:31 ` [PATCH net-next 02/28] tipc: Eliminate obsolete filter for unexpected unicast messages Paul Gortmaker
2011-09-18  3:31 ` [PATCH net-next 03/28] tipc: Display meaningful peer interface name during link creation Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 04/28] tipc: Initialize peer session field of newly created link endpoint Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 05/28] tipc: Enhance filtering of out-dated link reset messages Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 06/28] tipc: Update obsolete references to multicast link Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 07/28] tipc: Cosmetic changes to broadcast bearer send routine Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 08/28] tipc: Remove non-executable code to handle broadcast bearer congestion Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 09/28] tipc: Enhance cleanup of broadcast link when contact with node is lost Paul Gortmaker
2011-09-18  3:32 ` Paul Gortmaker [this message]
2011-09-18  3:32 ` [PATCH net-next 11/28] tipc: Fix node lock problems during broadcast message reception Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 12/28] tipc: Remove deferred queue head caching " Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 13/28] tipc: Discard incoming broadcast messages that are unexpected Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 14/28] tipc: Remove obsolete congestion handling when sending a broadcast NACK Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 15/28] tipc: Eliminate redundant check when sending messages Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 16/28] tipc: Prevent rounding issues when saving connect timeout option Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 17/28] tipc: Ensure congested links receive bearer status updates Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 18/28] tipc: Ensure both nodes recognize loss of contact between them Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 19/28] tipc: Fix unsafe device list search when enabling bearer Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 20/28] tipc: Remove redundant " Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 21/28] tipc: Lower limits for number of bearers and media types Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 22/28] tipc: Prevent fragmented messages during initial name table exchange Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 23/28] tipc: relocate/coalesce node cast in tipc_named_node_up Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 24/28] tipc: Enhance sending of bulk name table messages Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 25/28] tipc: Add support for SO_SNDTIMEO socket option Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 26/28] tipc: Simplify prohibition of listen and accept for connectionless sockets Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 27/28] tipc: Remove callback field from subscription structure Paul Gortmaker
2011-09-18  3:32 ` [PATCH net-next 28/28] tipc: Remove unused link event tracking code Paul Gortmaker
2011-09-20 18:41 ` [PATCH net-next 00/28] misc. TIPC updates for what will be 3.2 David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1316316744-29514-11-git-send-email-paul.gortmaker@windriver.com \
    --to=paul.gortmaker@windriver.com \
    --cc=allan.stephens@windriver.com \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=ying.xue@windriver.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).