[ovs-dev] OvS DPDK vector pmd drivers

William Tu u9012063 at gmail.com
Sun Apr 12 21:16:00 UTC 2020


On Sat, Apr 11, 2020 at 10:18 AM Ravi Kerur <rkerur at gmail.com> wrote:
>
> Hi William,
>
> On Fri, Apr 10, 2020 at 7:06 AM William Tu <u9012063 at gmail.com> wrote:
>>
>> On Thu, Apr 09, 2020 at 02:14:26PM -0700, Ravi Kerur wrote:
>> > Hi OvS DPDK team,
>> >
>> > I am looking at ixgbe_set_rx_function and ixgbe_set_tx_function and would
>> > like to enable vectorized packet handling. Looking at ixgbe_set_rx_function
>>
>> Do you mean this "27.1. Vector PMD for IXGBE"?
>> https://doc.dpdk.org/guides/nics/ixgbe.html
>>
>
> Yes, from the documentation p.o.v this is what I am referring to.
>
>> > I see that it depends on device configuration and other parameters like
>> > descriptors, burst sze to enable vectorized Rx and Tx. How do I check which
>> > Tx and Rx OvS is using for processing?
>>
>> Hi Ravi,
>>
>> Do you mean whether OVS-DPDK uses this:
>>
>>         /*
>>          * Set the non-LRO scattered callback: there are Vector and
>>          * single allocation versions.
>>          */
>>         if (adapter->rx_vec_allowed) {
>>             PMD_INIT_LOG(DEBUG, "Using Vector Scattered Rx "
>>                         "callback (port=%d).",
>>                      dev->data->port_id);
>>
>> I guess if your NIC and CPU support, it should be automatically
>> enabled.
>
>
>  This is one case of Scattered Rx. Code. Which function gets selected depends on variables dev->data->lro, dev->data->scattered_rx, adapter->rx_vec_allowed, adapter->rx_bulk_alloc_allowed. Variables set/unset depends on descriptors, thresholds and other parameters. Similar logic is present for Tx as well. I have both 82599 and x710 NICs to it applies to both IXGBE and I40E drivers.
>
> How do I switch between different Tx and Rx functions in order to select an optimal one? Configurations other than queues/descriptor which can dictate a particular Rx and Tx?
>

Hi Ravi,
I don't think you can do that in OVS, the interface is not exposed to OVS.
Probably you should do it in DPDK source code.
William


More information about the dev mailing list