[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