[PATCH] eal/linux: redefine the name for rte_fbarray_init()

Stephen Hemminger stephen at networkplumber.org
Thu Nov 14 17:24:59 CET 2024


On Thu, 14 Nov 2024 16:37:10 +0800
Congjie Zhou <zcjie0802 at qq.com> wrote:

>  
> +static uint64_t
> +current_time(void)
> +{
> +	struct timespec ts;
> +	if (clock_gettime(CLOCK_MONOTONIC_RAW, &ts) == -1) {
> +		EAL_LOG(ERR, "Fail to get current time");
> +		return -1ULL;
> +	}
> +	uint64_t time_ns = (uint64_t)ts.tv_sec * 1000000000ULL + ts.tv_nsec;
> +	return time_ns;
> +}
> +
>  static int
>  secondary_msl_create_walk(const struct rte_memseg_list *msl,
>  		void *arg __rte_unused)
> @@ -1447,8 +1460,8 @@ secondary_msl_create_walk(const struct rte_memseg_list *msl,
>  	local_msl = &local_memsegs[msl_idx];
>  
>  	/* create distinct fbarrays for each secondary */
> -	snprintf(name, RTE_FBARRAY_NAME_LEN, "%s_%i",
> -		primary_msl->memseg_arr.name, getpid());
> +	snprintf(name, RTE_FBARRAY_NAME_LEN, "%s_%i_%"PRIx64,
> +		primary_msl->memseg_arr.name, getpid(), current_time());
>  

In general DPDK uses tsc instead of monotonic time, since it is faster and platform
independent (ie Windows).

Why not use use a global counter instead?



More information about the dev mailing list