[dpdk-dev] [PATCH v3] examples/qos_sched: fix bad bit shift operation

Dumitrescu, Cristian cristian.dumitrescu at intel.com
Tue May 10 19:25:09 CEST 2016



> -----Original Message-----
> From: Mrozowicz, SlawomirX
> Sent: Tuesday, May 10, 2016 1:21 PM
> To: Dumitrescu, Cristian <cristian.dumitrescu at intel.com>
> Cc: dev at dpdk.org; Singh, Jasvinder <jasvinder.singh at intel.com>;
> Mrozowicz, SlawomirX <slawomirx.mrozowicz at intel.com>
> Subject: [PATCH v3] examples/qos_sched: fix bad bit shift operation
> 
> Fix issue reported by Coverity.
> 
> Coverity ID 30690: Bad bit shift operation
> large_shift: In expression 1ULL << i, left shifting by more than 63 bits
> has undefined behavior. The shift amount, i, is as much as 127.
> 
> Fixes: de3cfa2c9823 ("sched: initial import")
> 
> Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz at intel.com>
> ---
>  examples/qos_sched/args.c | 4 ++--
>  examples/qos_sched/main.h | 3 ++-
>  2 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/examples/qos_sched/args.c b/examples/qos_sched/args.c
> index 3e7fd08..354372d 100644
> --- a/examples/qos_sched/args.c
> +++ b/examples/qos_sched/args.c
> @@ -123,7 +123,7 @@ app_eal_core_mask(void)
>  	uint64_t cm = 0;
>  	struct rte_config *cfg = rte_eal_get_configuration();
> 
> -	for (i = 0; i < RTE_MAX_LCORE; i++) {
> +	for (i = 0; i < APP_MAX_LCORE; i++) {
>  		if (cfg->lcore_role[i] == ROLE_RTE)
>  			cm |= (1ULL << i);
>  	}
> @@ -142,7 +142,7 @@ app_cpu_core_count(void)
>  	char path[PATH_MAX];
>  	uint32_t ncores = 0;
> 
> -	for(i = 0; i < RTE_MAX_LCORE; i++) {
> +	for (i = 0; i < APP_MAX_LCORE; i++) {
>  		len = snprintf(path, sizeof(path), SYS_CPU_DIR, i);
>  		if (len <= 0 || (unsigned)len >= sizeof(path))
>  			continue;
> diff --git a/examples/qos_sched/main.h b/examples/qos_sched/main.h
> index 82aa0fa..e0517d1 100644
> --- a/examples/qos_sched/main.h
> +++ b/examples/qos_sched/main.h
> @@ -68,7 +68,8 @@ extern "C" {
> 
>  #define BURST_TX_DRAIN_US 100
> 
> -#define MAX_DATA_STREAMS (RTE_MAX_LCORE/2)
> +#define APP_MAX_LCORE 64

Please allow this parameter to be configured from Makefile:

#ifndef APP_MAX_LCORE
#define APP_MAX_LCORE 64
#endif

> +#define MAX_DATA_STREAMS (APP_MAX_LCORE/2)
>  #define MAX_SCHED_SUBPORTS		8
>  #define MAX_SCHED_PIPES		4096
> 
> --
> 1.9.1

Yep, looks good. Thanks, Slawomir!

Regards,
Cristian



More information about the dev mailing list