netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 net] qed: Free RoCE ILT Memory on rmmod qedr
@ 2018-03-05  9:50 Michal Kalderon
  2018-03-05 21:23 ` Yuval Mintz
  0 siblings, 1 reply; 3+ messages in thread
From: Michal Kalderon @ 2018-03-05  9:50 UTC (permalink / raw)
  To: michal.kalderon, davem
  Cc: netdev, dledford, jgg, linux-rdma, Michal Kalderon, Ariel Elior

Rdma requires ILT Memory to be allocated for it's QPs.
Each ILT entry points to a page used by several Rdma QPs.
To avoid allocating all the memory in advance, the rdma
implementation dynamically allocates memory as more QPs are
added, however it does not dynamically free the memory.
The memory should have been freed on rmmod qedr, but isn't.
This patch adds the memory freeing on rmmod qedr (currently
it will be freed with qed is removed).

An outcome of this bug, is that if qedr is unloaded and loaded
without unloaded qed, there will be no more RoCE traffic.

The reason these are related, is that the logic of detecting the
first QP ever opened is by asking whether ILT memory for RoCE has
been allocated.

In addition, this patch modifies freeing of the Task context to
always use the PROTOCOLID_ROCE and not the protocol passed,
this is because task context for iWARP and ROCE both use the
ROCE protocol id, as opposed to the connection context.

Fixes: dbb799c39717 ("qed: Initialize hardware for new protocols")

Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com>
---
Difference from V1: 

Fixes line was truncated

---
 drivers/net/ethernet/qlogic/qed/qed_cxt.c  | 5 ++++-
 drivers/net/ethernet/qlogic/qed/qed_rdma.c | 1 +
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/qlogic/qed/qed_cxt.c b/drivers/net/ethernet/qlogic/qed/qed_cxt.c
index 6f546e8..b6f55bc 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_cxt.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_cxt.c
@@ -2480,7 +2480,10 @@ int qed_cxt_free_proto_ilt(struct qed_hwfn *p_hwfn, enum protocol_type proto)
 	if (rc)
 		return rc;
 
-	/* Free Task CXT */
+	/* Free Task CXT ( Intentionally RoCE as task-id is shared between
+	 * RoCE and iWARP
+	 */
+	proto = PROTOCOLID_ROCE;
 	rc = qed_cxt_free_ilt_range(p_hwfn, QED_ELEM_TASK, 0,
 				    qed_cxt_get_proto_tid_count(p_hwfn, proto));
 	if (rc)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_rdma.c b/drivers/net/ethernet/qlogic/qed/qed_rdma.c
index 5d040b8..f3ee653 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_rdma.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_rdma.c
@@ -380,6 +380,7 @@ static void qed_rdma_free(struct qed_hwfn *p_hwfn)
 
 	qed_rdma_free_reserved_lkey(p_hwfn);
 	qed_rdma_resc_free(p_hwfn);
+	qed_cxt_free_proto_ilt(p_hwfn, p_hwfn->p_rdma_info->proto);
 }
 
 static void qed_rdma_get_guid(struct qed_hwfn *p_hwfn, u8 *guid)
-- 
2.9.5

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

* RE: [PATCH V2 net] qed: Free RoCE ILT Memory on rmmod qedr
  2018-03-05  9:50 [PATCH V2 net] qed: Free RoCE ILT Memory on rmmod qedr Michal Kalderon
@ 2018-03-05 21:23 ` Yuval Mintz
  2018-03-05 21:49   ` Kalderon, Michal
  0 siblings, 1 reply; 3+ messages in thread
From: Yuval Mintz @ 2018-03-05 21:23 UTC (permalink / raw)
  To: Michal Kalderon, davem@davemloft.net
  Cc: netdev@vger.kernel.org, dledford@redhat.com, Jason Gunthorpe,
	linux-rdma@vger.kernel.org, Ariel Elior

> -	/* Free Task CXT */
> +	/* Free Task CXT ( Intentionally RoCE as task-id is shared between
> +	 * RoCE and iWARP
> +	 */

Broken parenthesis In comment...

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

* RE: [PATCH V2 net] qed: Free RoCE ILT Memory on rmmod qedr
  2018-03-05 21:23 ` Yuval Mintz
@ 2018-03-05 21:49   ` Kalderon, Michal
  0 siblings, 0 replies; 3+ messages in thread
From: Kalderon, Michal @ 2018-03-05 21:49 UTC (permalink / raw)
  To: Yuval Mintz, davem@davemloft.net
  Cc: netdev@vger.kernel.org, dledford@redhat.com, Jason Gunthorpe,
	linux-rdma@vger.kernel.org, Elior, Ariel

> From: Yuval Mintz [mailto:yuvalm@mellanox.com]
> Sent: Monday, March 05, 2018 11:24 PM
> To: Kalderon, Michal <Michal.Kalderon@cavium.com>;
> davem@davemloft.net
> Cc: netdev@vger.kernel.org; dledford@redhat.com; Jason Gunthorpe
> <jgg@mellanox.com>; linux-rdma@vger.kernel.org; Elior, Ariel
> <Ariel.Elior@cavium.com>
> Subject: RE: [PATCH V2 net] qed: Free RoCE ILT Memory on rmmod qedr
> 
> > -	/* Free Task CXT */
> > +	/* Free Task CXT ( Intentionally RoCE as task-id is shared between
> > +	 * RoCE and iWARP
> > +	 */
> 
> Broken parenthesis In comment...
Thanks Yuval, V3 on its way

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

end of thread, other threads:[~2018-03-05 21:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-05  9:50 [PATCH V2 net] qed: Free RoCE ILT Memory on rmmod qedr Michal Kalderon
2018-03-05 21:23 ` Yuval Mintz
2018-03-05 21:49   ` Kalderon, Michal

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).