[ovs-dev] [PATCH 0/5 v2] DPDK multi-segment mbuf support

Kavanagh, Mark B mark.b.kavanagh at intel.com
Thu May 4 09:14:44 UTC 2017


>
>
>
>Thanks,
>Michael
>在 2017年5月3日,下午11:28,Kavanagh, Mark B <mark.b.kavanagh at intel.com> 写道:
>
>>>
>>> Currently, OVS only support DPDK single segment mbuf,
>>> it could lead problems, like a large non-DPDK source
>>> packet transmit to dpdk port.
>>>
>>> Also, OVS doesn't copy enough info in mbuf when do
>>> packet copy.
>>>
>>> At the same time, vlan and tunnelling packet's DPDK
>>> offloads, for example TSO, needs multi-segment mbuf's
>>> support.
>>>
>>> This patchset solved all above issues.
>>
>> Hi Michael,
>>
>> Thanks for this patch - I'm also working in this area currently, and have an RFC patch that
>builds on your work.
>>
>> I'm interested in the NIC that you used in testing this patchset - specifically, the
>related TX callback function that was used. The reason I ask is that vectorized Tx functions
>are typically incompatible with multi-segment mbufs, due to their scatter-gather (i.e. non-
>contiguous) nature, although this may vary from PMD to PMD.
>>
>
>The NIC we used is Intel xl710, and you are right, vectorized TX doesn't support this.
>Because we use hw offloading, but vector pmd doest not support offloading as I know. If
>offloading is configured, pmds will not use vector.
>
>> Finally, this patch doesn't provide support for multi-segment jumbo frames that
>
>If a packet is multi-seg, doesn't it be a jumbo frame in current ovs?

Hi Michael,

I think we're looking at multi-segment mbufs from two different perspectives:
1. When a non-DPDK device sends a jumbo frame to OvS that is stored as a multi-segment mbuf - this is what your patch implements
2. Enabling multi-segment mbufs in OvS-DPDK using standard-sized mbufs - i.e. increasing a DPDK port's MTU, but instead of increasing the size of mempool elements to accommodate the jumbo frame, simply use chained mbufs instead - this is what my patch does.

I hope that this clears things up!

Thanks,
Mark 

>
>> originate from a DPDK source - I'll post an RFC patch on this tomorrow, and I would be
>grateful if you could review same!
>>
>> Thanks again,
>> Mark
>>
>>
>>
>>
>>>
>>> --
>>> v1 --> v2
>>> rebase code to newest upstream.
>>> fix some typo in commit log.
>>>
>>> Michael Qiu (5):
>>> lib/dp-packet: init the mbuf to zero when build with DPDK
>>> lib/dp-packet: copy additional packet info when do packet copy
>>> lib/dp-packet: Fix data_len issue with multi-segments
>>> lib/dp-packet: copy multi-segments data from DPDK mbuf
>>> lib/netdev-dpdk: copy large packet to multi-segment mbufs
>>>
>>> lib/dp-packet.c   | 33 ++++++++++++++++++++++++++++++---
>>> lib/dp-packet.h   | 23 +++++++++++++----------
>>> lib/netdev-dpdk.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++----
>>> 3 files changed, 94 insertions(+), 17 deletions(-)
>>>
>>> --
>>> 1.8.3.1
>>
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev


More information about the dev mailing list