lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aYxh8jbeDENgZ9ht@fedora>
Date: Wed, 11 Feb 2026 08:03:48 -0300
From: Wander Lairson Costa <wander@...hat.com>
To: Costa Shulyupin <costa.shul@...hat.com>
Cc: Steven Rostedt <rostedt@...dmis.org>, 
	Tomas Glozar <tglozar@...hat.com>, Crystal Wood <crwood@...hat.com>, 
	Ivan Pravdin <ipravdin.official@...il.com>, John Kacur <jkacur@...hat.com>, 
	Tiezhu Yang <yangtiezhu@...ngson.cn>, linux-trace-kernel@...r.kernel.org, linux-kernel@...r.kernel.org, 
	bpf@...r.kernel.org
Subject: Re: [PATCH v2 2/4] tools/rtla: Remove unneeded nr_cpus arguments

On Mon, Feb 09, 2026 at 11:24:34AM +0200, Costa Shulyupin wrote:
> nr_cpus does not change at runtime, so passing it through function
> arguments is unnecessary.
> 
> Use the global nr_cpus instead of propagating it via parameters.

The parameter should also be removed from timerlat_bpf_get_hist_value(),
shouldn't it?

> 
> Signed-off-by: Costa Shulyupin <costa.shul@...hat.com>
> ---
>  tools/tracing/rtla/src/osnoise_hist.c  |  4 ++--
>  tools/tracing/rtla/src/osnoise_top.c   |  4 ++--
>  tools/tracing/rtla/src/timerlat_bpf.c  |  5 ++---
>  tools/tracing/rtla/src/timerlat_bpf.h  |  6 ++----
>  tools/tracing/rtla/src/timerlat_hist.c | 19 +++++++------------
>  tools/tracing/rtla/src/timerlat_top.c  | 19 +++++++------------
>  tools/tracing/rtla/src/timerlat_u.c    |  6 +++---
>  7 files changed, 25 insertions(+), 38 deletions(-)
> 
> diff --git a/tools/tracing/rtla/src/osnoise_hist.c b/tools/tracing/rtla/src/osnoise_hist.c
> index 03ebff34fff4..d83ee047a5f5 100644
> --- a/tools/tracing/rtla/src/osnoise_hist.c
> +++ b/tools/tracing/rtla/src/osnoise_hist.c
> @@ -62,7 +62,7 @@ static void osnoise_free_hist_tool(struct osnoise_tool *tool)
>   * osnoise_alloc_histogram - alloc runtime data
>   */
>  static struct osnoise_hist_data
> -*osnoise_alloc_histogram(int nr_cpus, int entries, int bucket_size)
> +*osnoise_alloc_histogram(int entries, int bucket_size)
>  {
>  	struct osnoise_hist_data *data;
>  	int cpu;
> @@ -652,7 +652,7 @@ static struct osnoise_tool
>  	if (!tool)
>  		return NULL;
>  
> -	tool->data = osnoise_alloc_histogram(nr_cpus, params->hist.entries,
> +	tool->data = osnoise_alloc_histogram(params->hist.entries,
>  					     params->hist.bucket_size);
>  	if (!tool->data)
>  		goto out_err;
> diff --git a/tools/tracing/rtla/src/osnoise_top.c b/tools/tracing/rtla/src/osnoise_top.c
> index 7dcd2e318205..73b3ac0dd43b 100644
> --- a/tools/tracing/rtla/src/osnoise_top.c
> +++ b/tools/tracing/rtla/src/osnoise_top.c
> @@ -51,7 +51,7 @@ static void osnoise_free_top_tool(struct osnoise_tool *tool)
>  /*
>   * osnoise_alloc_histogram - alloc runtime data
>   */
> -static struct osnoise_top_data *osnoise_alloc_top(int nr_cpus)
> +static struct osnoise_top_data *osnoise_alloc_top(void)
>  {
>  	struct osnoise_top_data *data;
>  
> @@ -496,7 +496,7 @@ struct osnoise_tool *osnoise_init_top(struct common_params *params)
>  	if (!tool)
>  		return NULL;
>  
> -	tool->data = osnoise_alloc_top(nr_cpus);
> +	tool->data = osnoise_alloc_top();
>  	if (!tool->data) {
>  		osnoise_destroy_tool(tool);
>  		return NULL;
> diff --git a/tools/tracing/rtla/src/timerlat_bpf.c b/tools/tracing/rtla/src/timerlat_bpf.c
> index 05adf18303df..8d5c3a095e41 100644
> --- a/tools/tracing/rtla/src/timerlat_bpf.c
> +++ b/tools/tracing/rtla/src/timerlat_bpf.c
> @@ -191,13 +191,12 @@ int timerlat_bpf_get_hist_value(int key,
>  int timerlat_bpf_get_summary_value(enum summary_field key,
>  				   long long *value_irq,
>  				   long long *value_thread,
> -				   long long *value_user,
> -				   int cpus)
> +				   long long *value_user)
>  {
>  	return get_value(bpf->maps.summary_irq,
>  			 bpf->maps.summary_thread,
>  			 bpf->maps.summary_user,
> -			 key, value_irq, value_thread, value_user, cpus);
> +			 key, value_irq, value_thread, value_user, nr_cpus);
>  }
>  
>  /*
> diff --git a/tools/tracing/rtla/src/timerlat_bpf.h b/tools/tracing/rtla/src/timerlat_bpf.h
> index 169abeaf4363..f4a5476f2abb 100644
> --- a/tools/tracing/rtla/src/timerlat_bpf.h
> +++ b/tools/tracing/rtla/src/timerlat_bpf.h
> @@ -28,8 +28,7 @@ int timerlat_bpf_get_hist_value(int key,
>  int timerlat_bpf_get_summary_value(enum summary_field key,
>  				   long long *value_irq,
>  				   long long *value_thread,
> -				   long long *value_user,
> -				   int cpus);
> +				   long long *value_user);
>  int timerlat_load_bpf_action_program(const char *program_path);
>  static inline int have_libbpf_support(void) { return 1; }
>  #else
> @@ -53,8 +52,7 @@ static inline int timerlat_bpf_get_hist_value(int key,
>  static inline int timerlat_bpf_get_summary_value(enum summary_field key,
>  						 long long *value_irq,
>  						 long long *value_thread,
> -						 long long *value_user,
> -						 int cpus)
> +						 long long *value_user)
>  {
>  	return -1;
>  }
> diff --git a/tools/tracing/rtla/src/timerlat_hist.c b/tools/tracing/rtla/src/timerlat_hist.c
> index 841118ed84f2..dee5fbf622c3 100644
> --- a/tools/tracing/rtla/src/timerlat_hist.c
> +++ b/tools/tracing/rtla/src/timerlat_hist.c
> @@ -83,7 +83,7 @@ static void timerlat_free_histogram_tool(struct osnoise_tool *tool)
>   * timerlat_alloc_histogram - alloc runtime data
>   */
>  static struct timerlat_hist_data
> -*timerlat_alloc_histogram(int nr_cpus, int entries, int bucket_size)
> +*timerlat_alloc_histogram(int entries, int bucket_size)
>  {
>  	struct timerlat_hist_data *data;
>  	int cpu;
> @@ -223,8 +223,7 @@ static int timerlat_hist_bpf_pull_data(struct osnoise_tool *tool)
>  
>  	/* Pull summary */
>  	err = timerlat_bpf_get_summary_value(SUMMARY_COUNT,
> -					     value_irq, value_thread, value_user,
> -					     data->nr_cpus);
> +					     value_irq, value_thread, value_user);
>  	if (err)
>  		return err;
>  	for (i = 0; i < data->nr_cpus; i++) {
> @@ -234,8 +233,7 @@ static int timerlat_hist_bpf_pull_data(struct osnoise_tool *tool)
>  	}
>  
>  	err = timerlat_bpf_get_summary_value(SUMMARY_MIN,
> -					     value_irq, value_thread, value_user,
> -					     data->nr_cpus);
> +					     value_irq, value_thread, value_user);
>  	if (err)
>  		return err;
>  	for (i = 0; i < data->nr_cpus; i++) {
> @@ -245,8 +243,7 @@ static int timerlat_hist_bpf_pull_data(struct osnoise_tool *tool)
>  	}
>  
>  	err = timerlat_bpf_get_summary_value(SUMMARY_MAX,
> -					     value_irq, value_thread, value_user,
> -					     data->nr_cpus);
> +					     value_irq, value_thread, value_user);
>  	if (err)
>  		return err;
>  	for (i = 0; i < data->nr_cpus; i++) {
> @@ -256,8 +253,7 @@ static int timerlat_hist_bpf_pull_data(struct osnoise_tool *tool)
>  	}
>  
>  	err = timerlat_bpf_get_summary_value(SUMMARY_SUM,
> -					     value_irq, value_thread, value_user,
> -					     data->nr_cpus);
> +					     value_irq, value_thread, value_user);
>  	if (err)
>  		return err;
>  	for (i = 0; i < data->nr_cpus; i++) {
> @@ -267,8 +263,7 @@ static int timerlat_hist_bpf_pull_data(struct osnoise_tool *tool)
>  	}
>  
>  	err = timerlat_bpf_get_summary_value(SUMMARY_OVERFLOW,
> -					     value_irq, value_thread, value_user,
> -					     data->nr_cpus);
> +					     value_irq, value_thread, value_user);
>  	if (err)
>  		return err;
>  	for (i = 0; i < data->nr_cpus; i++) {
> @@ -1036,7 +1031,7 @@ static struct osnoise_tool
>  	if (!tool)
>  		return NULL;
>  
> -	tool->data = timerlat_alloc_histogram(nr_cpus, params->hist.entries,
> +	tool->data = timerlat_alloc_histogram(params->hist.entries,
>  					      params->hist.bucket_size);
>  	if (!tool->data)
>  		goto out_err;
> diff --git a/tools/tracing/rtla/src/timerlat_top.c b/tools/tracing/rtla/src/timerlat_top.c
> index 3e395ce4fa9f..25b4d81b4fe0 100644
> --- a/tools/tracing/rtla/src/timerlat_top.c
> +++ b/tools/tracing/rtla/src/timerlat_top.c
> @@ -62,7 +62,7 @@ static void timerlat_free_top_tool(struct osnoise_tool *tool)
>  /*
>   * timerlat_alloc_histogram - alloc runtime data
>   */
> -static struct timerlat_top_data *timerlat_alloc_top(int nr_cpus)
> +static struct timerlat_top_data *timerlat_alloc_top(void)
>  {
>  	struct timerlat_top_data *data;
>  	int cpu;
> @@ -196,8 +196,7 @@ static int timerlat_top_bpf_pull_data(struct osnoise_tool *tool)
>  
>  	/* Pull summary */
>  	err = timerlat_bpf_get_summary_value(SUMMARY_CURRENT,
> -					     value_irq, value_thread, value_user,
> -					     data->nr_cpus);
> +					     value_irq, value_thread, value_user);
>  	if (err)
>  		return err;
>  	for (i = 0; i < data->nr_cpus; i++) {
> @@ -207,8 +206,7 @@ static int timerlat_top_bpf_pull_data(struct osnoise_tool *tool)
>  	}
>  
>  	err = timerlat_bpf_get_summary_value(SUMMARY_COUNT,
> -					     value_irq, value_thread, value_user,
> -					     data->nr_cpus);
> +					     value_irq, value_thread, value_user);
>  	if (err)
>  		return err;
>  	for (i = 0; i < data->nr_cpus; i++) {
> @@ -218,8 +216,7 @@ static int timerlat_top_bpf_pull_data(struct osnoise_tool *tool)
>  	}
>  
>  	err = timerlat_bpf_get_summary_value(SUMMARY_MIN,
> -					     value_irq, value_thread, value_user,
> -					     data->nr_cpus);
> +					     value_irq, value_thread, value_user);
>  	if (err)
>  		return err;
>  	for (i = 0; i < data->nr_cpus; i++) {
> @@ -229,8 +226,7 @@ static int timerlat_top_bpf_pull_data(struct osnoise_tool *tool)
>  	}
>  
>  	err = timerlat_bpf_get_summary_value(SUMMARY_MAX,
> -					     value_irq, value_thread, value_user,
> -					     data->nr_cpus);
> +					     value_irq, value_thread, value_user);
>  	if (err)
>  		return err;
>  	for (i = 0; i < data->nr_cpus; i++) {
> @@ -240,8 +236,7 @@ static int timerlat_top_bpf_pull_data(struct osnoise_tool *tool)
>  	}
>  
>  	err = timerlat_bpf_get_summary_value(SUMMARY_SUM,
> -					     value_irq, value_thread, value_user,
> -					     data->nr_cpus);
> +					     value_irq, value_thread, value_user);
>  	if (err)
>  		return err;
>  	for (i = 0; i < data->nr_cpus; i++) {
> @@ -782,7 +777,7 @@ static struct osnoise_tool
>  	if (!top)
>  		return NULL;
>  
> -	top->data = timerlat_alloc_top(nr_cpus);
> +	top->data = timerlat_alloc_top();
>  	if (!top->data)
>  		goto out_err;
>  
> diff --git a/tools/tracing/rtla/src/timerlat_u.c b/tools/tracing/rtla/src/timerlat_u.c
> index a569fe7f93aa..03b4e68e8b1e 100644
> --- a/tools/tracing/rtla/src/timerlat_u.c
> +++ b/tools/tracing/rtla/src/timerlat_u.c
> @@ -99,7 +99,7 @@ static int timerlat_u_main(int cpu, struct timerlat_u_params *params)
>   *
>   * Return the number of processes that received the kill.
>   */
> -static int timerlat_u_send_kill(pid_t *procs, int nr_cpus)
> +static int timerlat_u_send_kill(pid_t *procs)
>  {
>  	int killed = 0;
>  	int i, retval;
> @@ -169,7 +169,7 @@ void *timerlat_u_dispatcher(void *data)
>  
>  		/* parent */
>  		if (pid == -1) {
> -			timerlat_u_send_kill(procs, nr_cpus);
> +			timerlat_u_send_kill(procs);
>  			debug_msg("Failed to create child processes");
>  			pthread_exit(&retval);
>  		}
> @@ -196,7 +196,7 @@ void *timerlat_u_dispatcher(void *data)
>  		sleep(1);
>  	}
>  
> -	timerlat_u_send_kill(procs, nr_cpus);
> +	timerlat_u_send_kill(procs);
>  
>  	while (procs_count) {
>  		pid = waitpid(-1, &wstatus, 0);
> -- 
> 2.52.0
> 


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ