[dpdk-stable] [PATCH 1/2] net/ark: remove queue offset based on port id
Ferruh Yigit
ferruh.yigit at intel.com
Fri Jul 19 19:27:31 CEST 2019
On 7/19/2019 2:07 PM, Ed Czeck wrote:
> Queue index was incorrectly incremented with port, which
> caused swizzling of packet placement among queues.
What is "swizzling of packet placement"?
'qidx' is used to set 'phys_qid', if what the name suggest is correct it is used
to access the actual physical queues.
How this was working if you are calculating physical queue indexes wrong?
(Of-course except port 0)
Are you actually fixing the multiple port support?
> This manifested
> when the number of configured ports was >1 and < nb_queues.
I can see port number ">1", but is the 'nb_queues' limitation real?
If there are 2 queues per port, and you are configuring 3 ports will the
original calculation be correct?
>
> Fixes: c33d45af3633 ("net/ark: add Tx initial version")
> Cc: stable at dpdk.org
>
> Signed-off-by: Ed Czeck <ed.czeck at atomicrules.com>
> ---
> drivers/net/ark/ark_ethdev_rx.c | 4 +---
> drivers/net/ark/ark_ethdev_tx.c | 4 +---
> 2 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/ark/ark_ethdev_rx.c b/drivers/net/ark/ark_ethdev_rx.c
> index 7de1a98..6156730 100644
> --- a/drivers/net/ark/ark_ethdev_rx.c
> +++ b/drivers/net/ark/ark_ethdev_rx.c
> @@ -127,9 +127,7 @@ eth_ark_dev_rx_queue_setup(struct rte_eth_dev *dev,
> uint32_t i;
> int status;
>
> - /* Future works: divide the Q's evenly with multi-ports */
> - int port = dev->data->port_id;
> - int qidx = port + queue_idx;
> + int qidx = queue_idx;
>
> /* We may already be setup, free memory prior to re-allocation */
> if (dev->data->rx_queues[queue_idx] != NULL) {
> diff --git a/drivers/net/ark/ark_ethdev_tx.c b/drivers/net/ark/ark_ethdev_tx.c
> index 1967655..08bcf43 100644
> --- a/drivers/net/ark/ark_ethdev_tx.c
> +++ b/drivers/net/ark/ark_ethdev_tx.c
> @@ -211,9 +211,7 @@ eth_ark_tx_queue_setup(struct rte_eth_dev *dev,
> struct ark_tx_queue *queue;
> int status;
>
> - /* Future: divide the Q's evenly with multi-ports */
> - int port = dev->data->port_id;
> - int qidx = port + queue_idx;
> + int qidx = queue_idx;
>
> if (!rte_is_power_of_2(nb_desc)) {
> PMD_DRV_LOG(ERR,
>
More information about the stable
mailing list