app/testpmd: fix lcore ID restriction
Checks
Commit Message
With modern CPUs, it is possible to have higher
CPU count thus we can have higher RTE_MAX_LCORES.
In testpmd application, the current config forwarding
cores option "--nb-cores" is hard limited to 255.
The patch fixes this constraint and also adjusts the lcore
data structure to 32-bit to align with rte lcore APIs.
Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
---
app/test-pmd/parameters.c | 2 +-
app/test-pmd/testpmd.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Comments
On Mon, 15 Apr 2024 19:46:31 +0000
Sivaprasad Tummala <sivaprasad.tummala@amd.com> wrote:
> + nb_fwd_lcores = (lcoreid_t) n;
This should really be using strtoul() not atoi() because it offers
more error checking.
On Mon, 15 Apr 2024 19:46:31 +0000
Sivaprasad Tummala <sivaprasad.tummala@amd.com> wrote:
> --- a/app/test-pmd/testpmd.h
> +++ b/app/test-pmd/testpmd.h
> @@ -84,7 +84,7 @@ extern volatile uint8_t f_quit;
> /* Maximum number of pools supported per Rx queue */
> #define MAX_MEMPOOL 8
>
> -typedef uint8_t lcoreid_t;
> +typedef uint32_t lcoreid_t;
> typedef uint16_t portid_t;
> typedef uint16_t queueid_t;
> typedef uint16_t streamid_t;
> --
The other DPDK API's are using unsigned for lcore_id.
On the platforms that DPDK supports both are the same size.
@@ -1072,7 +1072,7 @@ launch_args_parse(int argc, char** argv)
case TESTPMD_OPT_NB_CORES_NUM:
n = atoi(optarg);
if (n > 0 && n <= nb_lcores)
- nb_fwd_lcores = (uint8_t) n;
+ nb_fwd_lcores = (lcoreid_t) n;
else
rte_exit(EXIT_FAILURE,
"nb-cores should be > 0 and <= %d\n",
@@ -84,7 +84,7 @@ extern volatile uint8_t f_quit;
/* Maximum number of pools supported per Rx queue */
#define MAX_MEMPOOL 8
-typedef uint8_t lcoreid_t;
+typedef uint32_t lcoreid_t;
typedef uint16_t portid_t;
typedef uint16_t queueid_t;
typedef uint16_t streamid_t;