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

Fab Tillier ftillier at microsoft.com
Wed Feb 20 18:25:12 PST 2013


Export UVP entry points directly.

This patch makes it so that the ND provider can call directly into the UVP, without having to query/user the UVP interface structure from IBAL.  Going forward, these entry points will be optimized for performance, taking native ND structures as input, optimizing locking, etc.

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

diff -dwup3 -X excl.txt -r \dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mlx4\user\hca\mlx4.def .\hw\mlx4\user\hca\mlx4.def
--- \dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mlx4\user\hca\mlx4.def	Thu Mar 29 00:15:30 2012
+++ .\hw\mlx4\user\hca\mlx4.def	Wed May 23 15:14:43 2012
@@ -1,8 +1,31 @@
 LIBRARY mlx4u.dll
 
-
-#ifndef _WIN64
 EXPORTS
+#ifndef _WIN64
 uvp_get_interface
 #endif
-
+mlx4_pre_open_ca
+mlx4_post_open_ca
+mlx4_post_close_ca
+mlx4_pre_alloc_pd
+mlx4_post_alloc_pd
+mlx4_post_free_pd
+mlx4_pre_create_cq
+mlx4_post_create_cq
+mlx4_post_destroy_cq
+mlx4_arm_cq
+mlx4_poll_cq_array
+mlx4_pre_create_srq
+mlx4_post_create_srq
+mlx4_pre_destroy_srq
+mlx4_post_destroy_srq
+mlx4_post_srq_recv
+mlx4_pre_create_qp
+mlx4_wv_pre_create_qp
+mlx4_post_create_qp
+mlx4_pre_destroy_qp
+mlx4_post_destroy_qp
+mlx4_nd_modify_qp
+mlx4_nd_get_qp_state
+mlx4_post_send
+mlx4_post_recv
diff -dwup3 -X excl.txt -r \dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mlx4\user\hca\verbs.h .\hw\mlx4\user\hca\verbs.h
--- \dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mlx4\user\hca\verbs.h	Tue Aug 07 17:06:08 2012
+++ .\hw\mlx4\user\hca\verbs.h	Thu May 31 12:35:12 2012
@@ -36,7 +36,7 @@
 #ifndef INFINIBAND_VERBS_H
 #define INFINIBAND_VERBS_H
 
-#include "l2w.h"
+#include "iba\ib_uvp.h"
 
 
 #ifdef __cplusplus
@@ -276,6 +276,14 @@ mlx4_post_destroy_cq (
 	IN		const	ib_cq_handle_t			h_uvp_cq,
 	IN				ib_api_status_t			ioctl_status );
 
+ib_api_status_t
+mlx4_arm_cq (
+	IN		const	void*						h_cq,
+	IN		const	boolean_t					solicited);
+
+int mlx4_poll_cq_array(const void* h_cq,
+			const int num_entries, uvp_wc_t* const wc);
+
 /************* SRQ Management **********************/
 ib_api_status_t  
 mlx4_pre_create_srq (
@@ -300,6 +308,10 @@ mlx4_post_destroy_srq (
 	IN		const	ib_srq_handle_t			h_uvp_srq,
 	IN				ib_api_status_t			ioctl_status );
 
+ib_api_status_t mlx4_post_srq_recv(const void* h_srq,
+			ib_recv_wr_t* const wr,
+			ib_recv_wr_t** bad_wr);
+
 /************* QP Management ***********************/
 ib_api_status_t
 mlx4_pre_create_qp (
@@ -359,6 +371,14 @@ mlx4_nd_modify_qp (
 uint32_t
 mlx4_nd_get_qp_state (
 	IN		const	ib_qp_handle_t			h_uvp_qp );
+
+ib_api_status_t mlx4_post_send(const void* h_qp,
+			ib_send_wr_t* const wr,
+			ib_send_wr_t** bad_wr);
+
+ib_api_status_t mlx4_post_recv(const void* h_qp,
+			ib_recv_wr_t* const wr,
+			ib_recv_wr_t** bad_wr);
 
 /************* AV Management ***********************/
 ib_api_status_t
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ndv2.39.patch
Type: application/octet-stream
Size: 2561 bytes
Desc: ndv2.39.patch
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20130221/cdfb0e80/attachment.obj>


More information about the ofw mailing list