tools/power turbostat: Add proper re-initialization for perf file descriptors
Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
committed by
Len Brown
parent
4a1bb4dad5
commit
ebf8449cab
@@ -3669,18 +3669,25 @@ void free_fd_percpu(void)
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (!fd_percpu)
|
||||||
|
return;
|
||||||
|
|
||||||
for (i = 0; i < topo.max_cpu_num + 1; ++i) {
|
for (i = 0; i < topo.max_cpu_num + 1; ++i) {
|
||||||
if (fd_percpu[i] != 0)
|
if (fd_percpu[i] != 0)
|
||||||
close(fd_percpu[i]);
|
close(fd_percpu[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(fd_percpu);
|
free(fd_percpu);
|
||||||
|
fd_percpu = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_fd_amperf_percpu(void)
|
void free_fd_amperf_percpu(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (!fd_amperf_percpu)
|
||||||
|
return;
|
||||||
|
|
||||||
for (i = 0; i < topo.max_cpu_num + 1; ++i) {
|
for (i = 0; i < topo.max_cpu_num + 1; ++i) {
|
||||||
if (fd_amperf_percpu[i].mperf != 0)
|
if (fd_amperf_percpu[i].mperf != 0)
|
||||||
close(fd_amperf_percpu[i].mperf);
|
close(fd_amperf_percpu[i].mperf);
|
||||||
@@ -3690,6 +3697,21 @@ void free_fd_amperf_percpu(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
free(fd_amperf_percpu);
|
free(fd_amperf_percpu);
|
||||||
|
fd_amperf_percpu = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
void free_fd_instr_count_percpu(void)
|
||||||
|
{
|
||||||
|
if (!fd_instr_count_percpu)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (int i = 0; i < topo.max_cpu_num + 1; ++i) {
|
||||||
|
if (fd_instr_count_percpu[i] != 0)
|
||||||
|
close(fd_instr_count_percpu[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
free(fd_instr_count_percpu);
|
||||||
|
fd_instr_count_percpu = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_all_buffers(void)
|
void free_all_buffers(void)
|
||||||
@@ -3733,6 +3755,7 @@ void free_all_buffers(void)
|
|||||||
outp = NULL;
|
outp = NULL;
|
||||||
|
|
||||||
free_fd_percpu();
|
free_fd_percpu();
|
||||||
|
free_fd_instr_count_percpu();
|
||||||
free_fd_amperf_percpu();
|
free_fd_amperf_percpu();
|
||||||
|
|
||||||
free(irq_column_2_cpu);
|
free(irq_column_2_cpu);
|
||||||
@@ -4067,10 +4090,13 @@ static void update_effective_set(bool startup)
|
|||||||
err(1, "%s: cpu str malformat %s\n", PATH_EFFECTIVE_CPUS, cpu_effective_str);
|
err(1, "%s: cpu str malformat %s\n", PATH_EFFECTIVE_CPUS, cpu_effective_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void linux_perf_init(void);
|
||||||
|
|
||||||
void re_initialize(void)
|
void re_initialize(void)
|
||||||
{
|
{
|
||||||
free_all_buffers();
|
free_all_buffers();
|
||||||
setup_all_buffers(false);
|
setup_all_buffers(false);
|
||||||
|
linux_perf_init();
|
||||||
fprintf(outf, "turbostat: re-initialized with num_cpus %d, allowed_cpus %d\n", topo.num_cpus,
|
fprintf(outf, "turbostat: re-initialized with num_cpus %d, allowed_cpus %d\n", topo.num_cpus,
|
||||||
topo.allowed_cpus);
|
topo.allowed_cpus);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user