在将数据包从一个线程发送到另一个线程(两个线程在不同的内核中)时,使用了 DPDK Event Dev Queue。
观察到事件开发队列入队失败。交叉检查 EvtDevQ 统计数据,它显示数据包处于飞行模式,似乎没有发布到队列,并且入队失败且未恢复。 还安排了多次发生的呼叫。
注意: 接收线程不在紧环中
事件排队功能:
rte_event_enqueue_burst()
预约通话功能:
rte_service_run_iter_on_app_lcore()
端口 0 和队列 0 在这种情况下使用。
我该如何解决?任何帮助表示赞赏。
统计:
Dev=0 Port=1EventDev todo-fix-name: ports 4, qids 3
rx 32768
drop 0
tx 4096
sched calls: 628945658
sched cq/qid call: 628964843
sched no IQ enq: 628926401
sched no CQ enq: 628942982
inflight 32768, credits: 0
Port 0
rx 0 drop 0 tx 4096 ^[[0minflight 4096^[[0m
Max New: 32768 Avg cycles PP: 0 Credits: 0
Receive burst distribution:
0:100% 1-4:0.00% 5-8:0.00% 9-12:0.00%
^[[0mrx ring used: 0 free: 4096^[[0m
^[[0mcq ring used: 0 free: 128^[[0m
Port 1
rx 0 drop 0 tx 0 ^[[0minflight 0^[[0m
Max New: 32768 Avg cycles PP: 0 Credits: 0
Receive burst distribution:
0:100%
^[[0mrx ring used: 0 free: 4096^[[0m
^[[0mcq ring used: 0 free: 128^[[0m
Port 2
rx 32768 drop 0 tx 0 ^[[0minflight 0^[[0m
Max New: 32768 Avg cycles PP: 0 Credits: 0
Receive burst distribution:
0:-nan%
^[[0mrx ring used: 0 free: 4096^[[0m
^[[0mcq ring used: 0 free: 128^[[0m
Port 3 (SingleCons)
rx 0 drop 0 tx 0 ^[[0minflight 0^[[0m
Max New: 32768 Avg cycles PP: 0 Credits: 0
Receive burst distribution:
0:-nan%
^[[0mrx ring used: 0 free: 4096^[[0m
^[[0mcq ring used: 0 free: 128^[[0m
Queue 0 (Atomic)
rx 32768 drop 0 tx 4096
Per Port Stats:
Port 0: Pkts: 4096 Flows: 1
Port 1: Pkts: 0 Flows: 0
Port 2: Pkts: 0 Flows: 0
Port 3: Pkts: 0 Flows: 0
^[[0miq 0: Used 28672^[[0m
Queue 1 (Atomic)
rx 0 drop 0 tx 0
Per Port Stats:
Port 0: Pkts: 0 Flows: 0
Port 1: Pkts: 0 Flows: 0
Port 2: Pkts: 0 Flows: 0
Port 3: Pkts: 0 Flows: 0
-- iqs empty --
Queue 2 (Directed)
rx 0 drop 0 tx 0
Per Port Stats:
Port 0: Pkts: 0 Flows: 0
Port 1: Pkts: 0 Flows: 0
Port 2: Pkts: 0 Flows: 0
Port 3: Pkts: 0 Flows: 0
-- iqs empty --