* [dpdk-dev] VM2VM_HARDWARE mode on i350
@ 2014-07-11 20:47 Wei-Chun Chao
2014-07-12 8:20 ` Xie, Huawei
0 siblings, 1 reply; 2+ messages in thread
From: Wei-Chun Chao @ 2014-07-11 20:47 UTC (permalink / raw)
To: dev
Hi,
I was playing with vhost example to measure VM to VM throughput. With
default SW mode I saw 9Gbps. While trying HW mode, traffic does not
work.
Looking at the code I saw a snippet in
lib/librte_pmd_ixgbe/ixgbe_rxtx.c:ixgbe_vmdq_rx_hw_configure -
/* PFDMA Tx General Switch Control Enables VMDQ loopback */
if (cfg->enable_loop_back) {
IXGBE_WRITE_REG(hw, IXGBE_PFDTXGSWC, IXGBE_PFDTXGSWC_VT_LBEN);
for (i = 0; i < RTE_IXGBE_VMTXSW_REGISTER_COUNT; i++)
IXGBE_WRITE_REG(hw, IXGBE_VMTXSW(i), UINT32_MAX);
}
But there is no corresponding code in
lib/librte_pmd_e1000/igb_rxtx.c:igb_vmdq_rx_hw_configure.
Is this expected behavior? Or just something not implemented?
I tried adding some code similar to the following but it didn't help.
dtxswc = rd32(E1000_TXSWC);
if (enable)
dtxswc |= E1000_DTXSWC_VMDQ_LOOPBACK_EN;
else
dtxswc &= ~E1000_DTXSWC_VMDQ_LOOPBACK_EN;
wr32(E1000_TXSWC, dtxswc);
Another question: I have a i210 that doesn't support VMDq and vhost
example does not run even with vm2vm_software. Why is VMDq needed for
sw mode?
Thanks,
Weichun
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [dpdk-dev] VM2VM_HARDWARE mode on i350
2014-07-11 20:47 [dpdk-dev] VM2VM_HARDWARE mode on i350 Wei-Chun Chao
@ 2014-07-12 8:20 ` Xie, Huawei
0 siblings, 0 replies; 2+ messages in thread
From: Xie, Huawei @ 2014-07-12 8:20 UTC (permalink / raw)
To: Wei-Chun Chao, dev
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Wei-Chun Chao
> Sent: Saturday, July 12, 2014 4:48 AM
> To: dev@dpdk.org
> Subject: [dpdk-dev] VM2VM_HARDWARE mode on i350
>
> Hi,
> I was playing with vhost example to measure VM to VM throughput. With
> default SW mode I saw 9Gbps. While trying HW mode, traffic does not
> work.
>
> Looking at the code I saw a snippet in
> lib/librte_pmd_ixgbe/ixgbe_rxtx.c:ixgbe_vmdq_rx_hw_configure -
>
> /* PFDMA Tx General Switch Control Enables VMDQ loopback */
> if (cfg->enable_loop_back) {
> IXGBE_WRITE_REG(hw, IXGBE_PFDTXGSWC,
> IXGBE_PFDTXGSWC_VT_LBEN);
> for (i = 0; i < RTE_IXGBE_VMTXSW_REGISTER_COUNT; i++)
> IXGBE_WRITE_REG(hw, IXGBE_VMTXSW(i), UINT32_MAX);
> }
>
> But there is no corresponding code in
> lib/librte_pmd_e1000/igb_rxtx.c:igb_vmdq_rx_hw_configure.
>
> Is this expected behavior? Or just something not implemented?
>
> I tried adding some code similar to the following but it didn't help.
>
> dtxswc = rd32(E1000_TXSWC);
> if (enable)
> dtxswc |= E1000_DTXSWC_VMDQ_LOOPBACK_EN;
> else
> dtxswc &= ~E1000_DTXSWC_VMDQ_LOOPBACK_EN;
> wr32(E1000_TXSWC, dtxswc);
>
> Another question: I have a i210 that doesn't support VMDq and vhost
> example does not run even with vm2vm_software. Why is VMDq needed for
> sw mode?
>
> Thanks,
> Weichun
Replying to your second question. VMDQ is a must in vhost example, in which each virtio device is bound to a pool in VMDQ. The vm2vm_software mode means the for each xmit packet from virtio TX ring, the software will play the role of packet switch, find the destination and do the packet forwarding, while enable_loop_back mode will directly send the packet out through hardware TX queue, and let the hardware L2 switch play the role of packet switch.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-07-12 8:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-11 20:47 [dpdk-dev] VM2VM_HARDWARE mode on i350 Wei-Chun Chao
2014-07-12 8:20 ` Xie, Huawei
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).