[ofw] [Patch 46/62] Reference implementation of NDv2

Fab Tillier ftillier at microsoft.com
Wed Feb 20 20:46:21 PST 2013


Add support for NOP work request.

There's partial support there the WR type is defined, but the HCA driver and the work completion path does not support it.  Flesh that out (for user-mode only).  This is needed to emulate MW support, can't wait to get proper MW support, though.

Signed-off-by: Fab Tillier <ftillier at microsoft.com>

diff -dwup3 -X excl.txt -r \dev\openib\ofw\gen1\branches\mlx4_30\trunk\core\al\ib_statustext.c .\core\al\ib_statustext.c
--- \dev\openib\ofw\gen1\branches\mlx4_30\trunk\core\al\ib_statustext.c	Fri Aug 03 12:26:11 2012
+++ .\core\al\ib_statustext.c	Thu Aug 23 12:39:08 2012
@@ -207,6 +207,7 @@ static const char* const __ib_wc_send_ty
 	"IB_WC_COMPARE_SWAP",
 	"IB_WC_FETCH_ADD",
 	"IB_WC_MW_BIND",
+    "IB_WC_NOP"
 };
 
 static const char* const __ib_wc_recv_type_str[] =
diff -dwup3 -X excl.txt -r \dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mlx4\user\hca\cq.c .\hw\mlx4\user\hca\cq.c
--- \dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mlx4\user\hca\cq.c	Thu Mar 29 00:15:30 2012
+++ .\hw\mlx4\user\hca\cq.c	Thu Aug 23 11:48:08 2012
@@ -281,6 +281,7 @@ static int mlx4_poll_one(struct mlx4_cq 
 			break;
 		case MLX4_OPCODE_SEND_IMM:
 			wc->recv.ud.recv_opt |= IB_RECV_OPT_IMMEDIATE;
+            __fallthrough;
 		case MLX4_OPCODE_SEND:
 			wc->wc_type   = IB_WC_SEND;
 			break;
@@ -299,6 +300,9 @@ static int mlx4_poll_one(struct mlx4_cq 
 		case MLX4_OPCODE_BIND_MW:
 			wc->wc_type   = IB_WC_MW_BIND;
 			break;
+        case MLX4_OPCODE_NOP:
+            wc->wc_type   = IB_WC_NOP;
+            break;
 		default:
 			/* assume it's a send completion */
 			wc->wc_type   = IB_WC_SEND;
diff -dwup3 -X excl.txt -r \dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mlx4\user\hca\qp.c .\hw\mlx4\user\hca\qp.c
--- \dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mlx4\user\hca\qp.c	Fri Aug 10 15:27:47 2012
+++ .\hw\mlx4\user\hca\qp.c	Wed Aug 22 10:47:23 2012
@@ -62,6 +62,9 @@ static enum mlx4_opcode_type __to_opcode
 	case WR_FETCH_ADD:
 		opcode = MLX4_OPCODE_ATOMIC_FA;
 		break;
+    case WR_NOP:
+        opcode = MLX4_OPCODE_NOP;
+        break;
 	default:
 		opcode = MLX4_OPCODE_INVALID;
 		break;
diff -dwup3 -X excl.txt -r \dev\openib\ofw\gen1\branches\mlx4_30\trunk\inc\iba\ib_types.h .\inc\iba\ib_types.h
--- \dev\openib\ofw\gen1\branches\mlx4_30\trunk\inc\iba\ib_types.h	Thu Aug 09 14:23:51 2012
+++ .\inc\iba\ib_types.h	Thu Aug 23 12:39:13 2012
@@ -11461,6 +11461,7 @@ typedef enum _ib_wc_type_t {
 	IB_WC_COMPARE_SWAP,
 	IB_WC_FETCH_ADD,
 	IB_WC_MW_BIND,
+    IB_WC_NOP,
 	IB_WC_UNKNOWN1,
 	IB_WC_RECV = (1 << 7),
 	IB_WC_RECV_RDMA_WRITE,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ndv2.46.patch
Type: application/octet-stream
Size: 2316 bytes
Desc: ndv2.46.patch
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20130221/9e58a0f2/attachment.obj>


More information about the ofw mailing list