[openib-general] [PATCH RFC 3 of 5] IB/srp: QoS support

Michael S. Tsirkin mst at mellanox.co.il
Mon Jan 22 06:46:04 PST 2007


QoS support according to the proposed LWG2 QoS Annex:
pass sevice ID in SA query

Signed-off-by: Michael S. Tsirkin <mst at mellanox.co.il>

---

Index: linux-2.6/drivers/infiniband/ulp/srp/ib_srp.c
===================================================================
--- linux-2.6.orig/drivers/infiniband/ulp/srp/ib_srp.c
+++ linux-2.6/drivers/infiniband/ulp/srp/ib_srp.c
@@ -62,6 +62,11 @@ MODULE_DESCRIPTION("InfiniBand SCSI RDMA
 		   "v" DRV_VERSION " (" DRV_RELDATE ")");
 MODULE_LICENSE("Dual BSD/GPL");
 
+static int srp_qos_support;
+
+module_param_named(qos_support, srp_qos_support, int, 0644);
+MODULE_PARM_DESC(qos_support, "Enable QoS support if > 0.");
+
 static int srp_sg_tablesize = SRP_DEF_SG_TABLESIZE;
 static int srp_max_iu_len;
 
@@ -267,7 +272,23 @@ static int srp_lookup_path(struct srp_ta
 
 	init_completion(&target->done);
 
-	target->path_query_id = ib_sa_path_rec_get(&srp_sa_client,
+	if (srp_qos_support) {
+		ib_sa_comp_mask m = IB_SA_PATH_REC_DGID	|
+			IB_SA_PATH_REC_SGID		|
+			IB_SA_PATH_REC_NUMB_PATH	|
+			IB_SA_PATH_REC_PKEY;
+		target->path.service_id = target->service_id;
+		m |= IB_SA_PATH_REC_SERVICE_ID;
+		target->path_query_id = ib_sa_path_rec_get(&srp_sa_client,
+						   target->srp_host->dev->dev,
+						   target->srp_host->port,
+						   &target->path, m,
+						   SRP_PATH_REC_TIMEOUT_MS,
+						   GFP_KERNEL,
+						   srp_path_rec_completion,
+						   target, &target->path_query);
+	} else
+		target->path_query_id = ib_sa_path_rec_get(&srp_sa_client,
 						   target->srp_host->dev->dev,
 						   target->srp_host->port,
 						   &target->path,


-- 
MST




More information about the general mailing list