Commit 179d03bb authored by Hariprasad S's avatar Hariprasad S Committed by Doug Ledford

iw_cxgb4: Remove negative advice dmesg warnings

Remove these log messages in favor of per-endpoint counters as well as
device-global counters that can be inspected via debugfs.
Signed-off-by: default avatarSteve Wise <swise@opengridcomputing.com>
Signed-off-by: default avatarHariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 0d0f738f
...@@ -2058,9 +2058,12 @@ static int act_open_rpl(struct c4iw_dev *dev, struct sk_buff *skb) ...@@ -2058,9 +2058,12 @@ static int act_open_rpl(struct c4iw_dev *dev, struct sk_buff *skb)
status, status2errno(status)); status, status2errno(status));
if (is_neg_adv(status)) { if (is_neg_adv(status)) {
dev_warn(&dev->rdev.lldi.pdev->dev, PDBG("%s Connection problems for atid %u status %u (%s)\n",
"Connection problems for atid %u status %u (%s)\n", __func__, atid, status, neg_adv_str(status));
atid, status, neg_adv_str(status)); ep->stats.connect_neg_adv++;
mutex_lock(&dev->rdev.stats.lock);
dev->rdev.stats.neg_adv++;
mutex_unlock(&dev->rdev.stats.lock);
return 0; return 0;
} }
...@@ -2566,9 +2569,13 @@ static int peer_abort(struct c4iw_dev *dev, struct sk_buff *skb) ...@@ -2566,9 +2569,13 @@ static int peer_abort(struct c4iw_dev *dev, struct sk_buff *skb)
ep = lookup_tid(t, tid); ep = lookup_tid(t, tid);
if (is_neg_adv(req->status)) { if (is_neg_adv(req->status)) {
dev_warn(&dev->rdev.lldi.pdev->dev, PDBG("%s Negative advice on abort- tid %u status %d (%s)\n",
"Negative advice on abort - tid %u status %d (%s)\n", __func__, ep->hwtid, req->status,
ep->hwtid, req->status, neg_adv_str(req->status)); neg_adv_str(req->status));
ep->stats.abort_neg_adv++;
mutex_lock(&dev->rdev.stats.lock);
dev->rdev.stats.neg_adv++;
mutex_unlock(&dev->rdev.stats.lock);
return 0; return 0;
} }
PDBG("%s ep %p tid %u state %u\n", __func__, ep, ep->hwtid, PDBG("%s ep %p tid %u state %u\n", __func__, ep, ep->hwtid,
...@@ -3977,9 +3984,11 @@ static int peer_abort_intr(struct c4iw_dev *dev, struct sk_buff *skb) ...@@ -3977,9 +3984,11 @@ static int peer_abort_intr(struct c4iw_dev *dev, struct sk_buff *skb)
return 0; return 0;
} }
if (is_neg_adv(req->status)) { if (is_neg_adv(req->status)) {
dev_warn(&dev->rdev.lldi.pdev->dev, PDBG("%s Negative advice on abort- tid %u status %d (%s)\n",
"Negative advice on abort - tid %u status %d (%s)\n", __func__, ep->hwtid, req->status,
ep->hwtid, req->status, neg_adv_str(req->status)); neg_adv_str(req->status));
ep->stats.abort_neg_adv++;
dev->rdev.stats.neg_adv++;
kfree_skb(skb); kfree_skb(skb);
return 0; return 0;
} }
......
...@@ -490,6 +490,7 @@ static int stats_show(struct seq_file *seq, void *v) ...@@ -490,6 +490,7 @@ static int stats_show(struct seq_file *seq, void *v)
dev->rdev.stats.act_ofld_conn_fails); dev->rdev.stats.act_ofld_conn_fails);
seq_printf(seq, "PAS_OFLD_CONN_FAILS: %10llu\n", seq_printf(seq, "PAS_OFLD_CONN_FAILS: %10llu\n",
dev->rdev.stats.pas_ofld_conn_fails); dev->rdev.stats.pas_ofld_conn_fails);
seq_printf(seq, "NEG_ADV_RCVD: %10llu\n", dev->rdev.stats.neg_adv);
seq_printf(seq, "AVAILABLE IRD: %10u\n", dev->avail_ird); seq_printf(seq, "AVAILABLE IRD: %10u\n", dev->avail_ird);
return 0; return 0;
} }
...@@ -561,10 +562,13 @@ static int dump_ep(int id, void *p, void *data) ...@@ -561,10 +562,13 @@ static int dump_ep(int id, void *p, void *data)
cc = snprintf(epd->buf + epd->pos, space, cc = snprintf(epd->buf + epd->pos, space,
"ep %p cm_id %p qp %p state %d flags 0x%lx " "ep %p cm_id %p qp %p state %d flags 0x%lx "
"history 0x%lx hwtid %d atid %d " "history 0x%lx hwtid %d atid %d "
"conn_na %u abort_na %u "
"%pI4:%d/%d <-> %pI4:%d/%d\n", "%pI4:%d/%d <-> %pI4:%d/%d\n",
ep, ep->com.cm_id, ep->com.qp, ep, ep->com.cm_id, ep->com.qp,
(int)ep->com.state, ep->com.flags, (int)ep->com.state, ep->com.flags,
ep->com.history, ep->hwtid, ep->atid, ep->com.history, ep->hwtid, ep->atid,
ep->stats.connect_neg_adv,
ep->stats.abort_neg_adv,
&lsin->sin_addr, ntohs(lsin->sin_port), &lsin->sin_addr, ntohs(lsin->sin_port),
ntohs(mapped_lsin->sin_port), ntohs(mapped_lsin->sin_port),
&rsin->sin_addr, ntohs(rsin->sin_port), &rsin->sin_addr, ntohs(rsin->sin_port),
...@@ -582,10 +586,13 @@ static int dump_ep(int id, void *p, void *data) ...@@ -582,10 +586,13 @@ static int dump_ep(int id, void *p, void *data)
cc = snprintf(epd->buf + epd->pos, space, cc = snprintf(epd->buf + epd->pos, space,
"ep %p cm_id %p qp %p state %d flags 0x%lx " "ep %p cm_id %p qp %p state %d flags 0x%lx "
"history 0x%lx hwtid %d atid %d " "history 0x%lx hwtid %d atid %d "
"conn_na %u abort_na %u "
"%pI6:%d/%d <-> %pI6:%d/%d\n", "%pI6:%d/%d <-> %pI6:%d/%d\n",
ep, ep->com.cm_id, ep->com.qp, ep, ep->com.cm_id, ep->com.qp,
(int)ep->com.state, ep->com.flags, (int)ep->com.state, ep->com.flags,
ep->com.history, ep->hwtid, ep->atid, ep->com.history, ep->hwtid, ep->atid,
ep->stats.connect_neg_adv,
ep->stats.abort_neg_adv,
&lsin6->sin6_addr, ntohs(lsin6->sin6_port), &lsin6->sin6_addr, ntohs(lsin6->sin6_port),
ntohs(mapped_lsin6->sin6_port), ntohs(mapped_lsin6->sin6_port),
&rsin6->sin6_addr, ntohs(rsin6->sin6_port), &rsin6->sin6_addr, ntohs(rsin6->sin6_port),
......
...@@ -137,6 +137,7 @@ struct c4iw_stats { ...@@ -137,6 +137,7 @@ struct c4iw_stats {
u64 tcam_full; u64 tcam_full;
u64 act_ofld_conn_fails; u64 act_ofld_conn_fails;
u64 pas_ofld_conn_fails; u64 pas_ofld_conn_fails;
u64 neg_adv;
}; };
struct c4iw_hw_queue { struct c4iw_hw_queue {
...@@ -814,6 +815,11 @@ struct c4iw_listen_ep { ...@@ -814,6 +815,11 @@ struct c4iw_listen_ep {
int backlog; int backlog;
}; };
struct c4iw_ep_stats {
unsigned connect_neg_adv;
unsigned abort_neg_adv;
};
struct c4iw_ep { struct c4iw_ep {
struct c4iw_ep_common com; struct c4iw_ep_common com;
struct c4iw_ep *parent_ep; struct c4iw_ep *parent_ep;
...@@ -846,6 +852,7 @@ struct c4iw_ep { ...@@ -846,6 +852,7 @@ struct c4iw_ep {
unsigned int retry_count; unsigned int retry_count;
int snd_win; int snd_win;
int rcv_win; int rcv_win;
struct c4iw_ep_stats stats;
}; };
static inline void print_addr(struct c4iw_ep_common *epc, const char *func, static inline void print_addr(struct c4iw_ep_common *epc, const char *func,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment