RDMA/nes: atomic counters for cm listener create and destroy
PATCH 1/2 RDMA/nes: atomic counters for cm listener create and destroy
Running long hour iterative MPI tests, sometimes ethtool statistics "CM Destroy Listener" count is more than "CM Create Listener". This inconsistency is fixed by making counter variable atomic.
Signed-off-by Faisal Latif <[email protected]>
--- drivers/infiniband/hw/nes/nes.h | 4 ++-- drivers/infiniband/hw/nes/nes_cm.c | 8 ++++---- drivers/infiniband/hw/nes/nes_nic.c | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-)
drivers/infiniband/hw/nes/nes.h +2 -2
@@ -193,8 +193,8 @@ extern u32 cm_packets_created;extern u32 cm_packets_received;extern u32 cm_packets_dropped;extern u32 cm_packets_retrans; -extern u32 cm_listens_created; -extern u32 cm_listens_destroyed; +extern atomic_t cm_listens_created; +extern atomic_t cm_listens_destroyed;extern u32 cm_backlog_drops;extern atomic_t cm_loopbacks;extern atomic_t cm_nodes_created;
drivers/infiniband/hw/nes/nes_cm.c +4 -4
@@ -67,8 +67,8 @@ u32 cm_packets_dropped;u32 cm_packets_retrans;u32 cm_packets_created;u32 cm_packets_received; -u32 cm_listens_created; -u32 cm_listens_destroyed; +atomic_t cm_listens_created; +atomic_t cm_listens_destroyed;u32 cm_backlog_drops;atomic_t cm_loopbacks;atomic_t cm_nodes_created;
@@ -1042,7 +1042,7 @@ static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,kfree (listener); listener =NULL ; ret =0 ; - cm_listens_destroyed++; +atomic_inc (&cm_listens_destroyed); }else {spin_unlock_irqrestore (&cm_core->listen_list_lock, flags); }
@@ -3172,7 +3172,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog) g_cm_core->api->stop_listener (g_cm_core, (void *)cm_node);return err; } - cm_listens_created++; +atomic_inc (&cm_listens_created); } cm_id->add_ref (cm_id);
drivers/infiniband/hw/nes/nes_nic.c +2 -2
@@ -1230,8 +1230,8 @@ static void nes_netdev_get_ethtool_stats(struct net_device *netdev, target_stat_values[++index] = cm_packets_received; target_stat_values[++index] = cm_packets_dropped; target_stat_values[++index] = cm_packets_retrans; - target_stat_values[++index] = cm_listens_created; - target_stat_values[++index] = cm_listens_destroyed; + target_stat_values[++index] =atomic_read (&cm_listens_created); + target_stat_values[++index] =atomic_read (&cm_listens_destroyed); target_stat_values[++index] = cm_backlog_drops; target_stat_values[++index] =atomic_read (&cm_loopbacks); target_stat_values[++index] =atomic_read (&cm_nodes_created);
Signature · 6 lines
1.5.3.3 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html