[dpdk-dev] [PATCH v5 12/15] distributor: fix scalar matching

David Hunt david.hunt at intel.com
Fri Oct 9 14:31:39 CEST 2020


On 8/10/2020 6:23 AM, Lukasz Wojciechowski wrote:
> Fix improper indexes while comparing tags.
> In the find_match_scalar() function:
> * j iterates over flow tags of following packets;
> * w iterates over backlog or in flight tags positions.
>
> Fixes: 775003ad2f96 ("distributor: add new burst-capable library")
> Cc: david.hunt at intel.com
> Cc: stable at dpdk.org
>
> Signed-off-by: Lukasz Wojciechowski <l.wojciechow at partner.samsung.com>
> ---
>   lib/librte_distributor/rte_distributor.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/librte_distributor/rte_distributor.c b/lib/librte_distributor/rte_distributor.c
> index 9fd7dcab7..4bd23a990 100644
> --- a/lib/librte_distributor/rte_distributor.c
> +++ b/lib/librte_distributor/rte_distributor.c
> @@ -261,13 +261,13 @@ find_match_scalar(struct rte_distributor *d,
>   
>   		for (j = 0; j < RTE_DIST_BURST_SIZE ; j++)
>   			for (w = 0; w < RTE_DIST_BURST_SIZE; w++)
> -				if (d->in_flight_tags[i][j] == data_ptr[w]) {
> +				if (d->in_flight_tags[i][w] == data_ptr[j]) {
>   					output_ptr[j] = i+1;
>   					break;
>   				}
>   		for (j = 0; j < RTE_DIST_BURST_SIZE; j++)
>   			for (w = 0; w < RTE_DIST_BURST_SIZE; w++)
> -				if (bl->tags[j] == data_ptr[w]) {
> +				if (bl->tags[w] == data_ptr[j]) {
>   					output_ptr[j] = i+1;
>   					break;
>   				}

Hi Lukasz,

Could you give a bit more information on the problem that this is fixing?

Were you finding that flows were not being assigned to workers correctly 
in the scalar code?

Thanks,
Dave.





More information about the dev mailing list