DPDK l2fwd 在 KVM 中具有多个 RX/TX 队列

问题描述 投票:0回答:1

我想在 KVM 中尝试多个 RX/TX 队列(来宾:CentOS)。我已经编译了DPDK(版本:18.05.1)并插入了igb_uio驱动程序(绑定了两个接口)。

我正在尝试客户端到服务器的连接(私有)。

客户端(eth1:10.10.10.2/24)<-->(eth1)CentOS VM(DPDK:18.05.1) (eth2) <--> 服务器 (eth1: 10.10.10.10/24)

VM 以直通模式直接管理两个接口(macvtap - 直通)。

<interface type='direct' trustGuestRxFilters='yes'>
<source dev='ens1' mode='passthrough'/>
<model type='virtio'/>
<driver name='vhost' queues='2'/>
</interface>

当 l2fwd 应用程序以单个 RX 和 TX 队列(默认更改)和 no-mac-updating 启动时。客户端和服务器连接完美。

我做了一些更改来尝试使用 l2fwd 应用程序的多个 RX/TX 队列。 我可以看到 ARP 在两端都没有得到解决。之后虚拟机没有收到任何数据包。

有人可以向我指出使用多个 RX/TX 队列来验证我的更改的文档吗?多个 RX/TX 队列是否可以在 VM 环境中工作?我看到其他人也有抱怨。

我是DPDK世界的新手。任何帮助都会有用的。谢谢你。

编辑(添加更多详细信息): 我在 l2fwd 示例中配置以太网设备具有 1 个 RX 队列和 2 个 TX 队列。

uint16_t q = 0;
uint16_t no_of_tx_queues = 2;
        
// Configuring Ethernet Device
rte_eth_dev_configure(portid, 1, no_of_tx_queues, &local_port_conf);
            
// Configuring Rx Queue
ret = rte_eth_rx_queue_setup(portid, 0, nb_rxd, rte_eth_dev_socket_id(portid), &rxq_conf, l2fwd_pktmbuf_pool);

// Configuring 2 TX Queue
for(q = 0; q < no_of_tx_queues; q++) {
    ret = rte_eth_tx_queue_setup(portid, q, nb_txd, rte_eth_dev_socket_id(portid), &txq_conf);
}

我正在从单个 RX 队列读取数据包:队列 ID:0(如之前设置)。

nb_rx = rte_eth_rx_burst(portid, 0, pkts_burst, MAX_PKT_BURST);

我看到一些数据包正在传入并转发到其他接口,但有些则没有。对于 ICMP (ping),我可以看到 ARP 已转发,但 l2fwd 未读取 ICMP 回显请求。

我发现的解决方案: 我在 l2fwd 中配置了 2 个 RX 和 2 个 TX 队列。我可以从第二个 RX 队列(队列 ID:1)读取 ICMP 请求并转发。这样,客户端到服务器的连接就可以按预期工作。您无法配置 1 个 RX 和 2 个 TX 队列。您需要配置相同数量的 RX 和 TX 队列(在 KVM 世界中)。

这里的问题是: 即使我配置了 1 个 RX 队列和 2 个 TX 队列。为什么 Queue-id: 1 上的数据包很少(未配置且不被 l2fwd 应用程序读取)。 在KVM(运行在CentOS)环境中观察到。我在 ESXI 上进行了相同的检查,我可以看到所有数据包都是从单个队列(队列 ID:0)读取并转发的。

为什么?请解释。有什么方法可以关闭 KVM 中的负载平衡(在两个 RX 队列上传输的数据包),以便我可以接收单个队列上的所有数据包?

networking qemu kvm dpdk
1个回答
0
投票

这是 DPDK 的 Vhost 多队列测试计划,其中使用了所有命令行参数: https://doc.dpdk.org/dts/test_plans/vhost_multi_queue_qemu_test_plan.html

问题中没有太多细节,所以我唯一的建议是确保多个队列首先工作,然后在此基础上运行

l2fwd
。如果来宾操作系统无法使用多个队列,DPDK 将无法解决该问题。

© www.soinside.com 2019 - 2024. All rights reserved.