common/cnxk: consider adjust value for tm burst calculation

Message ID 1635751737-29259-1-git-send-email-skoteshwar@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series common/cnxk: consider adjust value for tm burst calculation |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/github-robot: build success github build: passed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-intel-Functional fail Functional Testing issues

Commit Message

Satha Koteswara Rao Kottidi Nov. 1, 2021, 7:28 a.m. UTC
  From: Satha Rao <skoteshwar@marvell.com>

To support lower pps in packet mode we are changing adjust value,
same needs to be consider for burst size calculations.

When both peak and committed rates requested, then peak rate should
be larger than committed rate.

Signed-off-by: Satha Rao <skoteshwar@marvell.com>
---
 drivers/common/cnxk/roc_nix_tm_ops.c | 9 +++++++++
 1 file changed, 9 insertions(+)
  

Comments

Jerin Jacob Nov. 3, 2021, 3:13 p.m. UTC | #1
On Mon, Nov 1, 2021 at 12:59 PM <skoteshwar@marvell.com> wrote:
>
> From: Satha Rao <skoteshwar@marvell.com>
>
> To support lower pps in packet mode we are changing adjust value,
> same needs to be consider for burst size calculations.
>
> When both peak and committed rates requested, then peak rate should
> be larger than committed rate.
>
> Signed-off-by: Satha Rao <skoteshwar@marvell.com>


Acked-by: Jerin Jacob <jerinj@marvell.com>
Applied to dpdk-next-net-mrvl/for-next-net. Thanks

> ---
>  drivers/common/cnxk/roc_nix_tm_ops.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/drivers/common/cnxk/roc_nix_tm_ops.c b/drivers/common/cnxk/roc_nix_tm_ops.c
> index eee80d5..b80c77c 100644
> --- a/drivers/common/cnxk/roc_nix_tm_ops.c
> +++ b/drivers/common/cnxk/roc_nix_tm_ops.c
> @@ -124,6 +124,11 @@
>                 profile->pkt_mode_adj += adjust;
>                 profile->commit.rate += (adjust * profile->commit.rate);
>                 profile->peak.rate += (adjust * profile->peak.rate);
> +               /* Number of tokens freed after scheduling was proportional
> +                * to adjust value
> +                */
> +               profile->commit.size *= adjust;
> +               profile->peak.size *= adjust;
>         }
>
>         return 0;
> @@ -181,6 +186,10 @@
>                         return NIX_ERR_TM_INVALID_PEAK_RATE;
>         }
>
> +       /* If PIR and CIR are requested, PIR should always be larger than CIR */
> +       if (peak_rate && commit_rate && (commit_rate > peak_rate))
> +               return NIX_ERR_TM_INVALID_PEAK_RATE;
> +
>         if (!skip_ins)
>                 TAILQ_INSERT_TAIL(&nix->shaper_profile_list, profile, shaper);
>
> --
> 1.8.3.1
>
  

Patch

diff --git a/drivers/common/cnxk/roc_nix_tm_ops.c b/drivers/common/cnxk/roc_nix_tm_ops.c
index eee80d5..b80c77c 100644
--- a/drivers/common/cnxk/roc_nix_tm_ops.c
+++ b/drivers/common/cnxk/roc_nix_tm_ops.c
@@ -124,6 +124,11 @@ 
 		profile->pkt_mode_adj += adjust;
 		profile->commit.rate += (adjust * profile->commit.rate);
 		profile->peak.rate += (adjust * profile->peak.rate);
+		/* Number of tokens freed after scheduling was proportional
+		 * to adjust value
+		 */
+		profile->commit.size *= adjust;
+		profile->peak.size *= adjust;
 	}
 
 	return 0;
@@ -181,6 +186,10 @@ 
 			return NIX_ERR_TM_INVALID_PEAK_RATE;
 	}
 
+	/* If PIR and CIR are requested, PIR should always be larger than CIR */
+	if (peak_rate && commit_rate && (commit_rate > peak_rate))
+		return NIX_ERR_TM_INVALID_PEAK_RATE;
+
 	if (!skip_ins)
 		TAILQ_INSERT_TAIL(&nix->shaper_profile_list, profile, shaper);