[dpdk-dev] rx_eth_tx_burst not work in slave app.
zengxg14
zengxg14 at gmail.com
Fri Sep 19 11:12:32 CEST 2014
Hi all.
I wrote a program to recv and send pkt at the same port.
First init the port then use below code to receive pkts and send pkts. It works OK.
Then I try the multi-process. I init the port in master app, and run the recv and send in slave spp.
In this mode rx_eth_tx_burst() always return 0.
while ( 1 ) {
int nb_rx, t;
int tmp;
nb_rx = rte_eth_rx_burst(1, 0, pkt_mbuf, BURST_COUNT);
if (nb_rx == 0) {
rte_delay_us(20);
continue;
}
t = 0;
while (t < nb_rx) {
tmp = rte_eth_tx_burst(1, 0, &pkt_mbuf[t], nb_rx - t);
t += tmp;
}
}
What I found is:
In single-process mode, the tx_pkt_burst is set to ixgbe_xmit_pkts_vec.
In multi-process mode, after the master app is up, it shows tx_pkt_burst is ixgbe_xmit_pkts_vec.
But when the slave app is runing, "perf top" shows ixgbe_xmit_pkts is runing, not the ixgbe_xmit_pkts_vec.
How can I make the slave app still call the ixgbe_xmit_pkts_vec?
zengxg
More information about the dev
mailing list