All of lore.kernel.org
 help / color / mirror / Atom feed
* Skip napi_schedule if ib_poll_cq fails (v2)
@ 2016-07-13 15:21 Yuval Shaia
       [not found] ` <1468423316-28246-1-git-send-email-yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Yuval Shaia @ 2016-07-13 15:21 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	dledford-H+wXaHxf7aLQT0dZR+AlfA,
	sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
	hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w

v0 -> v1:
	* Initialize n before use

v1 -> v2
	* Add reviewers

[PATCH v2] IB/ipoib: Skip napi_schedule if ib_poll_cq fails
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2] IB/ipoib: Skip napi_schedule if ib_poll_cq fails
       [not found] ` <1468423316-28246-1-git-send-email-yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
@ 2016-07-13 15:21   ` Yuval Shaia
  2016-07-13 15:32   ` Skip napi_schedule if ib_poll_cq fails (v2) Leon Romanovsky
  1 sibling, 0 replies; 5+ messages in thread
From: Yuval Shaia @ 2016-07-13 15:21 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	dledford-H+wXaHxf7aLQT0dZR+AlfA,
	sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
	hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w

To avoid entering into endless loop when device can't poll CQE from CQ
driver should not reschedule if error is not -EAGAIN.

Signed-off-by: Yuval Shaia <yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Suggested-by: Håkon Bugge <haakon.bugge-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Acked-by: Santosh Shilimkar <santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Reviewed-by: Eli Cohen <eli-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
 drivers/infiniband/ulp/ipoib/ipoib.h       |    5 +++++
 drivers/infiniband/ulp/ipoib/ipoib_ib.c    |   13 ++++++++++++-
 drivers/infiniband/ulp/ipoib/ipoib_verbs.c |    1 +
 3 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h
index 4f7d9b4..1946149 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib.h
+++ b/drivers/infiniband/ulp/ipoib/ipoib.h
@@ -116,6 +116,8 @@ enum {
 	IPOIB_NON_CHILD		  = 0,
 	IPOIB_LEGACY_CHILD	  = 1,
 	IPOIB_RTNL_CHILD	  = 2,
+
+	IPOIB_MAX_CONSEQ_CQ_ERR	  = 10,
 };
 
 #define	IPOIB_OP_RECV   (1ul << 31)
@@ -347,6 +349,7 @@ struct ipoib_dev_priv {
 	u16		  pkey_index;
 	struct ib_pd	 *pd;
 	struct ib_cq	 *recv_cq;
+	int		  recv_conseq_cq_errs;
 	struct ib_cq	 *send_cq;
 	struct ib_qp	 *qp;
 	u32		  qkey;
@@ -772,6 +775,8 @@ static inline void ipoib_unregister_debugfs(void) { }
 	printk(level "%s: " format, ((struct ipoib_dev_priv *) priv)->dev->name , ## arg)
 #define ipoib_warn(priv, format, arg...)		\
 	ipoib_printk(KERN_WARNING, priv, format , ## arg)
+#define ipoib_crit(priv, format, arg...)		\
+	ipoib_printk(KERN_CRIT, priv, format , ## arg)
 
 extern int ipoib_sendq_size;
 extern int ipoib_recvq_size;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
index dc6d241..9395a24 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -449,7 +449,8 @@ int ipoib_poll(struct napi_struct *napi, int budget)
 	int t;
 	int n, i;
 
-	done  = 0;
+	done = 0;
+	n = 0;
 
 poll_more:
 	while (done < budget) {
@@ -475,6 +476,16 @@ poll_more:
 			break;
 	}
 
+	if (unlikely(n < 0) && (n != -EAGAIN)) {
+		if (priv->recv_conseq_cq_errs++ >= IPOIB_MAX_CONSEQ_CQ_ERR) {
+			ipoib_crit(priv,
+				   "Too many poll_cq errors, last error: %d\n",
+				   n);
+			return done;
+		}
+	} else
+		priv->recv_conseq_cq_errs = 0;
+
 	if (done < budget) {
 		napi_complete(napi);
 		if (unlikely(ib_req_notify_cq(priv->recv_cq,
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
index 1e7cbba..6ca8bdd 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c
@@ -181,6 +181,7 @@ int ipoib_transport_dev_init(struct net_device *dev, struct ib_device *ca)
 		printk(KERN_WARNING "%s: failed to create receive CQ\n", ca->name);
 		goto out_cm_dev_cleanup;
 	}
+	priv->recv_conseq_cq_errs = 0;
 
 	cq_attr.cqe = ipoib_sendq_size;
 	priv->send_cq = ib_create_cq(priv->ca, ipoib_send_comp_handler, NULL,
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: Skip napi_schedule if ib_poll_cq fails (v2)
       [not found] ` <1468423316-28246-1-git-send-email-yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
  2016-07-13 15:21   ` [PATCH v2] IB/ipoib: Skip napi_schedule if ib_poll_cq fails Yuval Shaia
@ 2016-07-13 15:32   ` Leon Romanovsky
       [not found]     ` <20160713153252.GG10079-2ukJVAZIZ/Y@public.gmane.org>
  1 sibling, 1 reply; 5+ messages in thread
From: Leon Romanovsky @ 2016-07-13 15:32 UTC (permalink / raw)
  To: Yuval Shaia
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	dledford-H+wXaHxf7aLQT0dZR+AlfA,
	sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
	hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w

[-- Attachment #1: Type: text/plain, Size: 667 bytes --]

On Wed, Jul 13, 2016 at 08:21:55AM -0700, Yuval Shaia wrote:
> v0 -> v1:
> 	* Initialize n before use
> 
> v1 -> v2
> 	* Add reviewers

You don't need to resend patches with tags changes only.
Patchworks handles it and adds automatically when Doug
collects them before apply.

And it will be great if you avoid adding cover letter for one patch.

Thanks

> 
> [PATCH v2] IB/ipoib: Skip napi_schedule if ib_poll_cq fails
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Skip napi_schedule if ib_poll_cq fails (v2)
       [not found]     ` <20160713153252.GG10079-2ukJVAZIZ/Y@public.gmane.org>
@ 2016-07-13 18:44       ` Yuval Shaia
  2016-07-14  5:11         ` Leon Romanovsky
  0 siblings, 1 reply; 5+ messages in thread
From: Yuval Shaia @ 2016-07-13 18:44 UTC (permalink / raw)
  To: Leon Romanovsky
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	dledford-H+wXaHxf7aLQT0dZR+AlfA,
	sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
	hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w

On Wed, Jul 13, 2016 at 06:32:52PM +0300, Leon Romanovsky wrote:
> On Wed, Jul 13, 2016 at 08:21:55AM -0700, Yuval Shaia wrote:
> > v0 -> v1:
> > 	* Initialize n before use
> > 
> > v1 -> v2
> > 	* Add reviewers
> 
> You don't need to resend patches with tags changes only.
> Patchworks handles it and adds automatically when Doug
> collects them before apply.

I also added some off-list reviewers.

> 
> And it will be great if you avoid adding cover letter for one patch.

Sure, will do.

> 
> Thanks
> 
> > 
> > [PATCH v2] IB/ipoib: Skip napi_schedule if ib_poll_cq fails
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Skip napi_schedule if ib_poll_cq fails (v2)
  2016-07-13 18:44       ` Yuval Shaia
@ 2016-07-14  5:11         ` Leon Romanovsky
  0 siblings, 0 replies; 5+ messages in thread
From: Leon Romanovsky @ 2016-07-14  5:11 UTC (permalink / raw)
  To: Yuval Shaia
  Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
	dledford-H+wXaHxf7aLQT0dZR+AlfA,
	sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
	hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w

[-- Attachment #1: Type: text/plain, Size: 555 bytes --]

On Wed, Jul 13, 2016 at 09:44:10PM +0300, Yuval Shaia wrote:
> On Wed, Jul 13, 2016 at 06:32:52PM +0300, Leon Romanovsky wrote:
> > On Wed, Jul 13, 2016 at 08:21:55AM -0700, Yuval Shaia wrote:
> > > v0 -> v1:
> > > 	* Initialize n before use
> > > 
> > > v1 -> v2
> > > 	* Add reviewers
> > 
> > You don't need to resend patches with tags changes only.
> > Patchworks handles it and adds automatically when Doug
> > collects them before apply.
> 
> I also added some off-list reviewers.

You could reply to your email with forgotten tags.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-07-14  5:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-13 15:21 Skip napi_schedule if ib_poll_cq fails (v2) Yuval Shaia
     [not found] ` <1468423316-28246-1-git-send-email-yuval.shaia-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-07-13 15:21   ` [PATCH v2] IB/ipoib: Skip napi_schedule if ib_poll_cq fails Yuval Shaia
2016-07-13 15:32   ` Skip napi_schedule if ib_poll_cq fails (v2) Leon Romanovsky
     [not found]     ` <20160713153252.GG10079-2ukJVAZIZ/Y@public.gmane.org>
2016-07-13 18:44       ` Yuval Shaia
2016-07-14  5:11         ` Leon Romanovsky

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.