cpumask: convert kernel trace functions further
PATCH 1/1 cpumask: convert kernel trace functions further
Impact: Reduce future memory usage, use new cpumask API.
Since the last patch was created and acked, more old cpumask users slipped into kernel/trace.
Mostly trivial conversions, except struct trace_iterator's "started" member becomes a cpumask_var_t.
Signed-off-by Rusty Russell <[email protected]>
kernel/trace/trace.c +9 -3
@@ -1812,10 +1812,10 @@ static void test_cpu_buff_start(struct tif (!(iter->iter_flags &TRACE_FILE_ANNOTATE ))return ; -if (cpu_isset (iter->cpu, iter->started)) +if (cpumask_test_cpu (iter->cpu, iter->started))return ; -cpu_set (iter->cpu, iter->started); +cpumask_set_cpu (iter->cpu, iter->started);trace_seq_printf (s,"##### CPU %u buffer started ####\n" , iter->cpu); }
@@ -3115,10 +3115,15 @@ static int tracing_open_pipe(struct inodif (!iter)return -ENOMEM ; +if (!alloc_cpumask_var (&iter->started,GFP_KERNEL )) { +kfree (iter); +return -ENOMEM ; + } +mutex_lock (&trace_types_lock);/* trace pipe does not show start of buffer */ -cpus_setall (iter->started); +cpumask_setall (iter->started); iter->tr = &global_trace; iter->trace = current_trace;
@@ -3135,6 +3140,7 @@ static int tracing_release_pipe(struct i {struct trace_iterator *iter = file->private_data; +free_cpumask_var (iter->started);kfree (iter);atomic_dec (&tracing_reader);
kernel/trace/trace.h +1 -1
@@ -368,7 +368,7 @@ struct trace_iterator {loff_t pos;long idx; -cpumask_t started; +cpumask_var_t started; };int tracing_is_enabled (void );
kernel/trace/trace_boot.c +1 -1
@@ -42,7 +42,7 @@ static int boot_trace_init(struct trace_int cpu; boot_trace = tr; -for_each_cpu_mask (cpu, cpu_possible_map) +for_each_cpu (cpu, cpu_possible_mask)tracing_reset (tr, cpu);tracing_sched_switch_assign_trace (tr);
kernel/trace/trace_functions_graph.c +1 -1
@@ -79,7 +79,7 @@ print_graph_cpu(struct trace_seq *s, intint i;int ret;int log10_this =log10_cpu (cpu); -int log10_all =log10_cpu (cpus_weight_nr (cpu_online_map)); +int log10_all =log10_cpu (cpumask_weight (cpu_online_mask));/*
kernel/trace/trace_hw_branches.c +3 -3
@@ -46,7 +46,7 @@ static void bts_trace_start(struct tracetracing_reset_online_cpus (tr); -for_each_cpu_mask (cpu, cpu_possible_map) +for_each_cpu (cpu, cpu_possible_mask)smp_call_function_single (cpu, bts_trace_start_cpu,NULL ,1 ); }
@@ -62,7 +62,7 @@ static void bts_trace_stop(struct trace_ {int cpu; -for_each_cpu_mask (cpu, cpu_possible_map) +for_each_cpu (cpu, cpu_possible_mask)smp_call_function_single (cpu, bts_trace_stop_cpu,NULL ,1 ); }
@@ -172,7 +172,7 @@ static void trace_bts_prepare(struct tra {int cpu; -for_each_cpu_mask (cpu, cpu_possible_map) +for_each_cpu (cpu, cpu_possible_mask)smp_call_function_single (cpu, trace_bts_cpu, iter->tr,1 ); }
kernel/trace/trace_power.c +1 -1
@@ -39,7 +39,7 @@ static int power_trace_init(struct trace trace_power_enabled =1 ; -for_each_cpu_mask (cpu, cpu_possible_map) +for_each_cpu (cpu, cpu_possible_mask)tracing_reset (tr, cpu);return 0 ; }