[dpdk-dev] examples/l3fwd-power: fix Rx descriptor size
Checks
Commit Message
L3fwd power app monitors the RX queues to see if the polling frequency
should be adjusted (the busier the queue, the higher the frequency).
The app uses several thresholds in the ring to determine the frequency,
being 96 the highest one, when frequency should be highest.
The problem is that the difference between this value and the ring size
is not big enough (128 - 96 = 32 descriptors), which means that
if the descriptors are not replenished quick enough, queue might
not be busy, but the app would think that it is, because 96th descriptor
is set.
Therefore, by increasing this gap (increasing the RX ring size),
we make sure that this false measurement will not happen.
Fixes: b451aa39db31 ("examples/l3fwd-power: use DD bit rather than RX queue count")
Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
examples/l3fwd-power/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
I have test this patch based on 17.05-rc2 , issue is fixed. Host frequency can
be changed according to the data throughput.
Tested-by: Lei Yao (lei.a.yao@intel.com)
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Pablo de Lara
> Sent: Wednesday, April 26, 2017 7:30 PM
> To: dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] examples/l3fwd-power: fix Rx descriptor size
>
> L3fwd power app monitors the RX queues to see if the polling frequency
> should be adjusted (the busier the queue, the higher the frequency).
> The app uses several thresholds in the ring to determine the frequency,
> being 96 the highest one, when frequency should be highest.
>
> The problem is that the difference between this value and the ring size
> is not big enough (128 - 96 = 32 descriptors), which means that
> if the descriptors are not replenished quick enough, queue might
> not be busy, but the app would think that it is, because 96th descriptor
> is set.
>
> Therefore, by increasing this gap (increasing the RX ring size),
> we make sure that this false measurement will not happen.
>
> Fixes: b451aa39db31 ("examples/l3fwd-power: use DD bit rather than RX
> queue count")
> Cc: stable@dpdk.org
>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---
> examples/l3fwd-power/main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
> index ec40a17..7a8e1cd 100644
> --- a/examples/l3fwd-power/main.c
> +++ b/examples/l3fwd-power/main.c
> @@ -147,7 +147,7 @@
> /*
> * Configurable number of RX/TX ring descriptors
> */
> -#define RTE_TEST_RX_DESC_DEFAULT 128
> +#define RTE_TEST_RX_DESC_DEFAULT 512
> #define RTE_TEST_TX_DESC_DEFAULT 512
> static uint16_t nb_rxd = RTE_TEST_RX_DESC_DEFAULT;
> static uint16_t nb_txd = RTE_TEST_TX_DESC_DEFAULT;
> --
> 2.7.4
28/04/2017 09:47, Yao, Lei A:
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Pablo de Lara
> >
> > L3fwd power app monitors the RX queues to see if the polling frequency
> > should be adjusted (the busier the queue, the higher the frequency).
> > The app uses several thresholds in the ring to determine the frequency,
> > being 96 the highest one, when frequency should be highest.
> >
> > The problem is that the difference between this value and the ring size
> > is not big enough (128 - 96 = 32 descriptors), which means that
> > if the descriptors are not replenished quick enough, queue might
> > not be busy, but the app would think that it is, because 96th descriptor
> > is set.
> >
> > Therefore, by increasing this gap (increasing the RX ring size),
> > we make sure that this false measurement will not happen.
> >
> > Fixes: b451aa39db31 ("examples/l3fwd-power: use DD bit rather than RX
> > queue count")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> I have test this patch based on 17.05-rc2 , issue is fixed. Host frequency can
> be changed according to the data throughput.
> Tested-by: Lei Yao (lei.a.yao@intel.com)
Applied, thanks
@@ -147,7 +147,7 @@
/*
* Configurable number of RX/TX ring descriptors
*/
-#define RTE_TEST_RX_DESC_DEFAULT 128
+#define RTE_TEST_RX_DESC_DEFAULT 512
#define RTE_TEST_TX_DESC_DEFAULT 512
static uint16_t nb_rxd = RTE_TEST_RX_DESC_DEFAULT;
static uint16_t nb_txd = RTE_TEST_TX_DESC_DEFAULT;