Skip to contentSkip to conversation

IB/ehca: PMA support and a minor fix

PATCH Applied Joachim Fenkes 2 participants 4 messages Jan 25, 2008 – Jan 31, 2008 InfiniBand

lore
Share & tools
lore
#0 lore raw

cover IB/ehca: PMA support and a minor fix

This patchset will fix a minor issue and then add support for Performance MADs, which redirects all PMA queries to the actual PMA QP.

[1/2] adds a missing query_pma_attr()
[2/2] adds PMA redirection code

The patches will apply, in order, on top of Roland's for-2.6.25 branch. Please review them and apply for 2.6.25 if you think they're okay.

Thanks and regards,
Joachim

Signature · 4 lines
Joachim Fenkes  --  eHCA Linux Driver Developer and Hardware Tamer
IBM Deutschland Entwicklung GmbH  --  Dept. 3627 (I/O Firmware Dev. 2)
Schoenaicher Strasse 220  --  71032 Boeblingen  --  Germany
eMail: [email protected]
#1 lore raw

PATCH 1/2 IB/ehca: Update sma_attr also in case of disruptive config change

---
 drivers/infiniband/hw/ehca/ehca_irq.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
drivers/infiniband/hw/ehca/ehca_irq.c +2 -0
index 863b34f..b5ca94c 100644
@@ -403,6 +403,8 @@ static void parse_ec(struct ehca_shca *shca, u64 eqe)
 			sport->port_state = IB_PORT_ACTIVE;
 			dispatch_port_event(shca, port, IB_EVENT_PORT_ACTIVE,
 					    "is active");
+			ehca_query_sma_attr(shca, port,
+					    &sport->saved_attr);
 		} else
 			notify_port_conf_change(shca, port);
 		break;
Signature · 1 line
1.5.2
#2 lore raw

PATCH 2/2 IB/ehca: Add PMA support

In reply to Joachim Fenkes

From: Hoang-Nam Nguyen <[email protected]>

This patch enables ehca to redirect any PMA queries to the actual PMA QP.

---
 drivers/infiniband/hw/ehca/ehca_classes.h |    1 +
 drivers/infiniband/hw/ehca/ehca_iverbs.h  |    5 ++
 drivers/infiniband/hw/ehca/ehca_main.c    |    2 +-
 drivers/infiniband/hw/ehca/ehca_sqp.c     |   91 +++++++++++++++++++++++++++++
 4 files changed, 98 insertions(+), 1 deletions(-)
drivers/infiniband/hw/ehca/ehca_classes.h +1 -0
index f281d16..92cce8a 100644
@@ -101,6 +101,7 @@ struct ehca_sport {
 	spinlock_t mod_sqp_lock;
 	enum ib_port_state port_state;
 	struct ehca_sma_attr saved_attr;
+	u32 pma_qp_nr;
 };
 
 #define HCA_CAP_MR_PGSIZE_4K  0x80000000
drivers/infiniband/hw/ehca/ehca_iverbs.h +5 -0
index c469bfd..a8a2ea5 100644
@@ -187,6 +187,11 @@ int ehca_dealloc_ucontext(struct ib_ucontext *context);
 
 int ehca_mmap(struct ib_ucontext *context, struct vm_area_struct *vma);
 
+int ehca_process_mad(struct ib_device *ibdev, int mad_flags, u8 port_num,
+		     struct ib_wc *in_wc, struct ib_grh *in_grh,
+		     struct ib_mad *in_mad,
+		     struct ib_mad *out_mad);
+
 void ehca_poll_eqs(unsigned long data);
 
 int ehca_calc_ipd(struct ehca_shca *shca, int port,
drivers/infiniband/hw/ehca/ehca_main.c +1 -1
index 0fe0c84..33b5bac 100644
@@ -472,7 +472,7 @@ int ehca_init_device(struct ehca_shca *shca)
 	shca->ib_device.dealloc_fmr	    = ehca_dealloc_fmr;
 	shca->ib_device.attach_mcast	    = ehca_attach_mcast;
 	shca->ib_device.detach_mcast	    = ehca_detach_mcast;
-	/* shca->ib_device.process_mad	    = ehca_process_mad;	    */
+	shca->ib_device.process_mad	    = ehca_process_mad;
 	shca->ib_device.mmap		    = ehca_mmap;
 
 	if (EHCA_BMASK_GET(HCA_CAP_SRQ, shca->hca_cap)) {
drivers/infiniband/hw/ehca/ehca_sqp.c +91 -0

112 lines not on this page · raw message

Signature · 1 line
1.5.2
#3 lore raw

Re: [PATCH 2/2] IB/ehca: Add PMA support

thanks, applied 1-2