瀏覽代碼

Proof-of-concept to manually parse completion event

tags/v0.9.3
Michael Brown 16 年之前
父節點
當前提交
e69863b5fb
共有 1 個文件被更改,包括 21 次插入2 次删除
  1. 21
    2
      src/drivers/net/mlx_ipoib/mt25218.c

+ 21
- 2
src/drivers/net/mlx_ipoib/mt25218.c 查看文件

@@ -27,7 +27,6 @@ struct mlx_nic {
27 27
 #include "mt_version.c"
28 28
 #include "mt25218_imp.c"
29 29
 
30
-/* NIC specific static variables go here */
31 30
 
32 31
 int prompt_key(int secs, unsigned char *ch_p)
33 32
 {
@@ -265,12 +264,31 @@ static void mlx_rx_complete ( struct net_device *netdev,
265 264
  * @v netdev		Network device
266 265
  * @v cq		Completion queue
267 266
  */
268
-static void mlx_poll_cq ( struct net_device *netdev, cq_t cq ) {
267
+static void mlx_poll_cq ( struct net_device *netdev,
268
+			  struct cq_st *cq ) {
269 269
 	struct mlx_nic *mlx = netdev->priv;
270 270
 	struct ib_cqe_st cqe;
271 271
 	uint8_t num_cqes;
272 272
 
273 273
 	while ( 1 ) {
274
+
275
+		unsigned long cons_idx;
276
+		union cqe_st *temp;
277
+
278
+		cons_idx = ( cq->cons_counter & ( cq->num_cqes - 1 ) );
279
+		temp = &cq->cq_buf[cons_idx];
280
+		if ( EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st,
281
+				 owner ) == 0 ) {
282
+			DBG ( "software owned\n" );
283
+			DBGC_HD ( mlx, temp, sizeof ( *temp ) );
284
+			DBG ( "my_qpn=%lx, g=%ld, s=%ld, op=%02lx, cnt=%lx\n",
285
+			      EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st, my_qpn ),
286
+			      EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st, g ),
287
+			      EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st, s ),
288
+			      EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st, opcode ),
289
+			      EX_FLD_BE ( temp, arbelprm_completion_queue_entry_st, byte_cnt ) );
290
+		}
291
+
274 292
 		/* Poll for single completion queue entry */
275 293
 		ib_poll_cq ( cq, &cqe, &num_cqes );
276 294
 
@@ -312,6 +330,7 @@ static void mlx_poll ( struct net_device *netdev ) {
312 330
 		return;
313 331
 	}
314 332
 
333
+	//	mlx_poll_cq ( netdev, ipoib_data.snd_cqh );
315 334
 	mlx_poll_cq ( netdev, ipoib_data.rcv_cqh );
316 335
 }
317 336
 

Loading…
取消
儲存