[dpdk-dev] examples/l3fwd-power: fix Rx descriptor size

Message ID 1493206192-69422-1-git-send-email-pablo.de.lara.guarch@intel.com (mailing list archive)
State Accepted, archived
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

De Lara Guarch, Pablo April 26, 2017, 11:29 a.m. UTC
  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

Yao, Lei A April 28, 2017, 7:47 a.m. UTC | #1
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
  
Thomas Monjalon May 1, 2017, 4:01 p.m. UTC | #2
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
  

Patch

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;