[dpdk-dev] [PATCH] examples: fix RSS hash function configuration

Ferruh Yigit ferruh.yigit at intel.com
Thu Jun 21 19:16:58 CEST 2018


On 6/21/2018 5:54 PM, Pavan Nikhilesh wrote:
> Hi Ferruh,
> 
> On Wed, Jun 20, 2018 at 04:01:22PM +0100, Ferruh Yigit wrote:
>> ethdev layer introduced checks for application requested RSS hash
>> functions and returns error for ones unsupported by hardware
>>
>> This check breaks some sample applications which blindly configures
>> RSS hash functions without checking underlying hardware support.
>>
>> Updated examples to mask out unsupported RSS has functions during device
>> configuration.
>> Prints a log if configuration values updated by this check.
>>
>> Fixes: aa1a6d87f15d ("ethdev: force RSS offload rules again")
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit at intel.com>
>> ---
>> Return error added in this release, so no need to backport the fix to
>> previous versions.
>>
>> Cc: David Hunt <david.hunt at intel.com>
>> Cc: Liang Ma <liang.j.ma at intel.com>
>> Cc: Xueming Li <xuemingl at mellanox.com>
>> ---
>>  examples/bond/main.c                          | 12 ++++++++++
>>  examples/distributor/main.c                   | 11 ++++++++++
>>  examples/eventdev_pipeline/main.c             | 11 ++++++++++
>>  examples/ip_pipeline/link.c                   |  8 +++++--
>>  examples/ip_reassembly/main.c                 | 12 ++++++++++
>>  examples/ipsec-secgw/ipsec-secgw.c            | 12 ++++++++++
>>  examples/l3fwd-acl/main.c                     | 12 ++++++++++
>>  examples/l3fwd-power/main.c                   | 14 ++++++++++--
>>  examples/l3fwd-vf/main.c                      | 12 ++++++++++
>>  examples/l3fwd/main.c                         | 12 ++++++++++
>>  examples/load_balancer/init.c                 | 12 ++++++++++
>>  examples/multi_process/symmetric_mp/main.c    | 12 ++++++++++
>>  .../performance-thread/l3fwd-thread/main.c    | 12 ++++++++++
>>  examples/qos_meter/main.c                     | 22 +++++++++++++++++++
>>  examples/vmdq_dcb/main.c                      | 13 +++++++++++
>>  15 files changed, 183 insertions(+), 4 deletions(-)
>>
> 
> As we are fixing it for examples can we include fix for app/test-eventdev too?

Yes we should, thanks for reminding, I will update the patch to include below.

> 
> diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c
> index d00f91802..79d755b6f 100644
> --- a/app/test-eventdev/test_perf_common.c
> +++ b/app/test-eventdev/test_perf_common.c
> @@ -706,6 +706,12 @@ perf_ethdev_setup(struct evt_test *test, struct evt_options *opt)
>         }
> 
>         RTE_ETH_FOREACH_DEV(i) {
> +               struct rte_eth_dev_info dev_info;
> +
> +               memset(&dev_info, 0, sizeof(struct rte_eth_dev_info));
> +               rte_eth_dev_info_get(i, &dev_info);
> +               port_conf.rx_adv_conf.rss_conf.rss_hf &=
> +                       dev_info.flow_type_rss_offloads;
> 
>                 if (rte_eth_dev_configure(i, 1, 1,
>                                         &port_conf)
> diff --git a/app/test-eventdev/test_pipeline_common.c b/app/test-eventdev/test_pipeline_common.c
> index 719518ff3..386ba14d1 100644
> --- a/app/test-eventdev/test_pipeline_common.c
> +++ b/app/test-eventdev/test_pipeline_common.c
> @@ -249,6 +249,9 @@ pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt)
>                 rx_conf = dev_info.default_rxconf;
>                 rx_conf.offloads = port_conf.rxmode.offloads;
> 
> +               port_conf.rx_adv_conf.rss_conf.rss_hf &=
> +                       dev_info.flow_type_rss_offloads;
> +
>                 if (rte_eth_dev_configure(i, nb_queues, nb_queues,
>                                         &port_conf)
>                                 < 0) {
> 
> 
> Thanks,
> Pavan
> 



More information about the dev mailing list