0 投票
分类:DPDK sample解惑 | 用户: (160 分)
17.05.2版本的dpdk,2个82599ES网卡,使用dpdk的l3fwd,启动参数./build/l3fwd -l 1-4 -- -P -p 0x3 --parse-ptype。

每个网卡只有rxq 0能收包,其他的都没有。

网卡绑定到内核驱动,用 ethtool -S看所有ring都有计数

启动日志和port0的xstats信息如下,什么原因呢?

EAL: Detected 12 lcore(s)
EAL: Probing VFIO support...
EAL: PCI device 0000:01:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:01:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1521 net_e1000_igb
EAL: PCI device 0000:06:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1557 net_ixgbe
EAL: PCI device 0000:08:00.0 on NUMA socket 0
EAL:   probe driver: 8086:10fb net_ixgbe
EAL: PCI device 0000:08:00.1 on NUMA socket 0
EAL:   probe driver: 8086:10fb net_ixgbe
EAL: PCI device 0000:81:00.0 on NUMA socket 1
EAL:   probe driver: 8086:10fb net_ixgbe
EAL: PCI device 0000:81:00.1 on NUMA socket 1
EAL:   probe driver: 8086:10fb net_ixgbe
L3FWD: Promiscuous mode selected
soft parse-ptype is enabled
L3FWD: LPM or EM none selected, default LPM on
nb_lcores 4
Initializing port 0 ... Creating queues: nb_rxq=3 nb_txq=4...  Address:90:E2:BA:B3:D4:FC, Destination:02:00:00:00:00:00, Allocated mbuf pool on socket 0
LPM: Adding route 0x01010100 / 24 (0)
LPM: Adding route 0x02010100 / 24 (1)
LPM: Adding route IPV6 / 48 (0)
LPM: Adding route IPV6 / 48 (1)
txq=1,0,0 txq=2,1,0 txq=3,2,0 txq=4,3,0
Initializing port 1 ... Creating queues: nb_rxq=3 nb_txq=4...  Address:90:E2:BA:B3:D4:FD, Destination:02:00:00:00:00:01, txq=1,0,0 txq=2,1,0 txq=3,2,0 txq=4,3,0

Initializing rx queues on lcore 1 ...
Initializing rx queues on lcore 2 ... rxq=0,0,0 rxq=0,1,0 rxq=0,2,0 rxq=1,0,0 rxq=1,1,0 rxq=1,2,0
Initializing rx queues on lcore 3 ...
Initializing rx queues on lcore 4 ...
PMD: ixgbe_dev_link_status_print(): Port 0: Link Up - speed 0 Mbps - half-duplex
PMD: ixgbe_dev_link_status_print(): Port 1: Link Up - speed 0 Mbps - half-duplex

Port 0: softly parse packet type info
Port 0: softly parse packet type info
Port 0: softly parse packet type info
Port 1: softly parse packet type info
Port 1: softly parse packet type info
Port 1: softly parse packet type info

Checking link statusdone
Port 0 Link Up - speed 10000 Mbps - full-duplex
Port 1 Link Up - speed 10000 Mbps - full-duplex
L3FWD: entering main loop on lcore 2
L3FWD:  -- lcoreid=2 portid=0 rxqueueid=0
L3FWD:  -- lcoreid=2 portid=0 rxqueueid=1
L3FWD:  -- lcoreid=2 portid=0 rxqueueid=2
L3FWD:  -- lcoreid=2 portid=1 rxqueueid=0
L3FWD:  -- lcoreid=2 portid=1 rxqueueid=1
L3FWD:  -- lcoreid=2 portid=1 rxqueueid=2
L3FWD: lcore 3 has nothing to do
L3FWD: lcore 1 has nothing to do
L3FWD: lcore 4 has nothing to do
###### NIC extended statistics for port 0  #########
####################################################
rx_good_packets: 4294967563
tx_good_packets: 4294967676
rx_good_bytes: 68719509967
tx_good_bytes: 51539651087
rx_errors: 0
tx_errors: 0
rx_mbuf_allocation_errors: 0
rx_q0packets: 4294967563
rx_q0bytes: 68719509967
rx_q0errors: 0
rx_q1packets: 0
rx_q1bytes: 0
rx_q1errors: 0
rx_q2packets: 0
rx_q2bytes: 0
rx_q2errors: 0
tx_q0packets: 4294967647
tx_q0bytes: 68719520383
tx_q1packets: 0
tx_q1bytes: 0
tx_q2packets: 0
tx_q2bytes: 0
tx_q3packets: 0
tx_q3bytes: 0
rx_crc_errors: 0
rx_illegal_byte_errors: 0
rx_error_bytes: 0
mac_local_errors: 0
mac_remote_errors: 0
rx_length_errors: 0
tx_xon_packets: 0
rx_xon_packets: 0
tx_xoff_packets: 0
rx_xoff_packets: 0
rx_size_64_packets: 0
rx_size_65_to_127_packets: 1401
rx_size_128_to_255_packets: 4294967295
rx_size_256_to_511_packets: 97
rx_size_512_to_1023_packets: 0
rx_size_1024_to_max_packets: 0
rx_broadcast_packets: 0
rx_multicast_packets: 1498
rx_fragment_errors: 0
rx_undersize_errors: 0
rx_oversize_errors: 0
rx_jabber_errors: 0
rx_management_packets: 0
rx_management_dropped: 0
tx_management_packets: 0
rx_total_packets: 4294967295
rx_total_bytes: 51539607555
tx_total_packets: 4294967295
tx_size_64_packets: 0
tx_size_65_to_127_packets: 435
tx_size_128_to_255_packets: 4294967295
tx_size_256_to_511_packets: 34
tx_size_512_to_1023_packets: 0
tx_size_1024_to_max_packets: 0
tx_multicast_packets: 0
tx_broadcast_packets: 0
rx_mac_short_packet_dropped: 0
rx_l3_l4_xsum_error: 0
flow_director_added_filters: 0
flow_director_removed_filters: 0
flow_director_filter_add_errors: 0
flow_director_filter_remove_errors: 0
flow_director_matched_filters: 0
flow_director_missed_filters: 0
rx_fcoe_crc_errors: 0
rx_fcoe_dropped: 0
rx_fcoe_mbuf_allocation_errors: 0
rx_fcoe_packets: 0
tx_fcoe_packets: 0
rx_fcoe_bytes: 0
tx_fcoe_bytes: 0
rx_fcoe_no_direct_data_placement: 0
rx_fcoe_no_direct_data_placement_ext_buff: 0
tx_flow_control_xon_packets: 0
rx_flow_control_xon_packets: 0
tx_flow_control_xoff_packets: 0
rx_flow_control_xoff_packets: 0
rx_total_missed_packets: 0
out_pkts_untagged: 2943780347
out_pkts_encrypted: 0
out_pkts_protected: 0
out_octets_encrypted: 0
out_octets_protected: 0
in_pkts_untagged: 0
in_pkts_badtag: 0
in_pkts_nosci: 0
in_pkts_unknownsci: 0
in_octets_decrypted: 0
in_octets_validated: 0
in_pkts_unchecked: 0
in_pkts_delayed: 0
in_pkts_late: 0
in_pkts_ok: 0
in_pkts_invalid: 0
in_pkts_notvalid: 0
in_pkts_unusedsa: 0
in_pkts_notusingsa: 0
rx_priority0_mbuf_allocation_errors: 0
rx_priority1_mbuf_allocation_errors: 0
rx_priority2_mbuf_allocation_errors: 0
rx_priority3_mbuf_allocation_errors: 0
rx_priority4_mbuf_allocation_errors: 0
rx_priority5_mbuf_allocation_errors: 0
rx_priority6_mbuf_allocation_errors: 0
rx_priority7_mbuf_allocation_errors: 0
rx_priority0_dropped: 4294967295
rx_priority1_dropped: 0
rx_priority2_dropped: 0
rx_priority3_dropped: 0
rx_priority4_dropped: 0
rx_priority5_dropped: 0
rx_priority6_dropped: 0
rx_priority7_dropped: 0
rx_priority0_xon_packets: 0
rx_priority1_xon_packets: 0
rx_priority2_xon_packets: 0
rx_priority3_xon_packets: 0
rx_priority4_xon_packets: 0
rx_priority5_xon_packets: 0
rx_priority6_xon_packets: 0
rx_priority7_xon_packets: 0
rx_priority0_xoff_packets: 0
rx_priority1_xoff_packets: 0
rx_priority2_xoff_packets: 0
rx_priority3_xoff_packets: 0
rx_priority4_xoff_packets: 0
rx_priority5_xoff_packets: 0
rx_priority6_xoff_packets: 0
rx_priority7_xoff_packets: 0
tx_priority0_xon_packets: 0
tx_priority1_xon_packets: 0
tx_priority2_xon_packets: 0
tx_priority3_xon_packets: 0
tx_priority4_xon_packets: 0
tx_priority5_xon_packets: 0
tx_priority6_xon_packets: 0
tx_priority7_xon_packets: 0
tx_priority0_xoff_packets: 0
tx_priority1_xoff_packets: 0
tx_priority2_xoff_packets: 0
tx_priority3_xoff_packets: 0
tx_priority4_xoff_packets: 0
tx_priority5_xoff_packets: 0
tx_priority6_xoff_packets: 0
tx_priority7_xoff_packets: 0
tx_priority0_xon_to_xoff_packets: 0
tx_priority1_xon_to_xoff_packets: 0
tx_priority2_xon_to_xoff_packets: 0
tx_priority3_xon_to_xoff_packets: 0
tx_priority4_xon_to_xoff_packets: 0
tx_priority5_xon_to_xoff_packets: 0
tx_priority6_xon_to_xoff_packets: 0
tx_priority7_xon_to_xoff_packets: 0

3 个回答

0 投票
用户: (160 分)
刚发现问题,QPRC寄存器看起来不是RSS的ring的计数器,在内核驱动里不是用的这个计数,ethtool -S读取的是软件的统计,现在看起来可能多ring是没问题的,只是计数有问题
用户: (13.1k 分)
testpmd中有个mapping设置,看看是不是和这个有关
0 投票
用户: (13.1k 分)
可能是配置问题或统计问题。你在每个业务线程里统计一下看看
0 投票
用户: (200 分)

是不是只发了一个ip流呢?rss是根据ip的5元组来分流到各个队列的。还有可以看一看配置的.rss_hf是不是ip的5元组。

static struct rte_eth_conf port_conf = {
    .rxmode = {
        .split_hdr_size = 0,
        .offloads = DEV_RX_OFFLOAD_CHECKSUM,
    },
    .rx_adv_conf = {
        .rss_conf = {
            .rss_key = NULL,
            .rss_hf = ETH_RSS_IP,
        },
    },
    .txmode = {
        .mq_mode = ETH_MQ_TX_NONE,
    },
};

欢迎来到 DPDK交流社区 ,有什么问题可以尽管在这里提问,您将会收到社区其他成员的回答;也可以将您的总结写在这里,为社区其他成员提供帮助。

QQ交流2群:635461501 (入群请注明来源)

冀ICP备15005332号-2
...