[dpdk-stable] [PATCH 1/3] Revert "net/mlx5: fix flow priority on queue action"

Yuanhan Liu yliu at fridaylinux.org
Tue Feb 27 10:49:46 CET 2018


On Tue, Feb 27, 2018 at 10:36:43AM +0100, Nelio Laranjeiro wrote:
> This patch depends on another one not backported.  For now it should be
> reverted to backport first the one missing and then re-apply this one.
> 
> This reverts commit 0ec3529b056a826cee94104e20dfd3d58d64ab67.

Series Applied to dpdk-stable/17.11.

Thanks for the backporting!

	--yliu

> ---
>  drivers/net/mlx5/mlx5_flow.c | 30 +++++++++++++++++++++++++++++-
>  1 file changed, 29 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
> index 82efddc5a..c18c77d48 100644
> --- a/drivers/net/mlx5/mlx5_flow.c
> +++ b/drivers/net/mlx5/mlx5_flow.c
> @@ -882,6 +882,8 @@ priv_flow_convert_items_validate(struct priv *priv,
>  		}
>  		if (parser->drop) {
>  			parser->drop_q.offset += cur_item->dst_sz;
> +		} else if (parser->queues_n == 1) {
> +			parser->queue[HASH_RXQ_ETH].offset += cur_item->dst_sz;
>  		} else {
>  			for (n = 0; n != hash_rxq_init_n; ++n)
>  				parser->queue[n].offset += cur_item->dst_sz;
> @@ -1124,6 +1126,19 @@ priv_flow_convert(struct priv *priv,
>  		if (!parser->drop_q.ibv_attr)
>  			return ENOMEM;
>  		parser->drop_q.offset = sizeof(struct ibv_flow_attr);
> +	} else if (parser->queues_n == 1) {
> +		unsigned int priority =
> +			attr->priority +
> +			hash_rxq_init[HASH_RXQ_ETH].flow_priority;
> +		unsigned int offset = parser->queue[HASH_RXQ_ETH].offset;
> +
> +		parser->queue[HASH_RXQ_ETH].ibv_attr =
> +			priv_flow_convert_allocate(priv, priority,
> +						   offset, error);
> +		if (!parser->queue[HASH_RXQ_ETH].ibv_attr)
> +			return ENOMEM;
> +		parser->queue[HASH_RXQ_ETH].offset =
> +			sizeof(struct ibv_flow_attr);
>  	} else {
>  		for (i = 0; i != hash_rxq_init_n; ++i) {
>  			unsigned int priority =
> @@ -1173,9 +1188,22 @@ priv_flow_convert(struct priv *priv,
>  	 * Last step. Complete missing specification to reach the RSS
>  	 * configuration.
>  	 */
> -	if (!parser->drop) {
> +	if (parser->drop) {
> +		/*
> +		 * Drop queue priority needs to be adjusted to
> +		 * their most specific layer priority.
> +		 */
> +		parser->drop_q.ibv_attr->priority =
> +			attr->priority +
> +			hash_rxq_init[parser->layer].flow_priority;
> +	} else if (parser->queues_n > 1) {
>  		priv_flow_convert_finalise(priv, parser);
>  	} else {
> +		/*
> +		 * Action queue have their priority overridden with
> +		 * Ethernet priority, this priority needs to be adjusted to
> +		 * their most specific layer priority.
> +		 */
>  		parser->queue[HASH_RXQ_ETH].ibv_attr->priority =
>  			attr->priority +
>  			hash_rxq_init[parser->layer].flow_priority;
> -- 
> 2.11.0


More information about the stable mailing list