diff options
Diffstat (limited to 'net/tipc/node.c')
| -rw-r--r-- | net/tipc/node.c | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/net/tipc/node.c b/net/tipc/node.c index 1e13ea98b96c..db2a6c3e0be9 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c @@ -433,6 +433,7 @@ static struct tipc_node *tipc_node_create(struct net *net, u32 addr,  			break;  	}  	list_add_tail_rcu(&n->list, &temp_node->list); +	trace_tipc_node_create(n, true, " ");  exit:  	spin_unlock_bh(&tn->node_list_lock);  	return n; @@ -460,6 +461,7 @@ static void tipc_node_delete_from_list(struct tipc_node *node)  static void tipc_node_delete(struct tipc_node *node)  { +	trace_tipc_node_delete(node, true, " ");  	tipc_node_delete_from_list(node);  	del_timer_sync(&node->timer); @@ -617,6 +619,7 @@ static void tipc_node_timeout(struct timer_list *t)  	int bearer_id;  	int rc = 0; +	trace_tipc_node_timeout(n, false, " ");  	if (!node_is_up(n) && tipc_node_cleanup(n)) {  		/*Removing the reference of Timer*/  		tipc_node_put(n); @@ -682,6 +685,7 @@ static void __tipc_node_link_up(struct tipc_node *n, int bearer_id,  	pr_debug("Established link <%s> on network plane %c\n",  		 tipc_link_name(nl), tipc_link_plane(nl)); +	trace_tipc_node_link_up(n, true, " ");  	/* Ensure that a STATE message goes first */  	tipc_link_build_state_msg(nl, xmitq); @@ -835,6 +839,7 @@ static void tipc_node_link_down(struct tipc_node *n, int bearer_id, bool delete)  		/* Defuse pending tipc_node_link_up() */  		tipc_link_fsm_evt(l, LINK_RESET_EVT);  	} +	trace_tipc_node_link_down(n, true, "node link down or deleted!");  	tipc_node_write_unlock(n);  	if (delete)  		tipc_mon_remove_peer(n->net, n->addr, old_bearer_id); @@ -1064,6 +1069,7 @@ static void tipc_node_reset_links(struct tipc_node *n)  	pr_warn("Resetting all links to %x\n", n->addr); +	trace_tipc_node_reset_links(n, true, " ");  	for (i = 0; i < MAX_BEARERS; i++) {  		tipc_node_link_down(n, i, false);  	} @@ -1239,11 +1245,13 @@ static void tipc_node_fsm_evt(struct tipc_node *n, int evt)  		pr_err("Unknown node fsm state %x\n", state);  		break;  	} +	trace_tipc_node_fsm(n->peer_id, n->state, state, evt);  	n->state = state;  	return;  illegal_evt:  	pr_err("Illegal node fsm evt %x in state %x\n", evt, state); +	trace_tipc_node_fsm(n->peer_id, n->state, state, evt);  }  static void node_lost_contact(struct tipc_node *n, @@ -1257,6 +1265,7 @@ static void node_lost_contact(struct tipc_node *n,  	pr_debug("Lost contact with %x\n", n->addr);  	n->delete_at = jiffies + msecs_to_jiffies(NODE_CLEANUP_AFTER); +	trace_tipc_node_lost_contact(n, true, " ");  	/* Clean up broadcast state */  	tipc_bcast_remove_peer(n->net, n->bc_entry.link); @@ -1585,6 +1594,10 @@ static bool tipc_node_check_state(struct tipc_node *n, struct sk_buff *skb,  	struct tipc_media_addr *maddr;  	int pb_id; +	if (trace_tipc_node_check_state_enabled()) { +		trace_tipc_skb_dump(skb, false, "skb for node state check"); +		trace_tipc_node_check_state(n, true, " "); +	}  	l = n->links[bearer_id].link;  	if (!l)  		return false; @@ -1636,6 +1649,8 @@ static bool tipc_node_check_state(struct tipc_node *n, struct sk_buff *skb,  		syncpt = oseqno + exp_pkts - 1;  		if (pl && tipc_link_is_up(pl)) {  			__tipc_node_link_down(n, &pb_id, xmitq, &maddr); +			trace_tipc_node_link_down(n, true, +						  "node link down <- failover!");  			tipc_skb_queue_splice_tail_init(tipc_link_inputq(pl),  							tipc_link_inputq(l));  		} | 
