Message ID | 1563541663-10797-1-git-send-email-ed.czeck@atomicrules.com |
---|---|
State | Superseded, archived |
Delegated to: | Ferruh Yigit |
Headers | show |
Series |
|
Related | show |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
ci/mellanox-Performance-Testing | success | Performance Testing PASS |
ci/intel-Performance-Testing | success | Performance Testing PASS |
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@dpdk.org > > Signed-off-by: Ed Czeck <ed.czeck@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, >
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,
Queue index was incorrectly incremented with port, which caused swizzling of packet placement among queues. This manifested when the number of configured ports was >1 and < nb_queues. Fixes: c33d45af3633 ("net/ark: add Tx initial version") Cc: stable@dpdk.org Signed-off-by: Ed Czeck <ed.czeck@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(-)