cregit-Linux how code gets into the kernel

Release 4.10 tools/perf/util/env.c

Directory: tools/perf/util
#include "cpumap.h"
#include "env.h"
#include "util.h"


struct perf_env perf_env;


void perf_env__exit(struct perf_env *env) { int i; zfree(&env->hostname); zfree(&env->os_release); zfree(&env->version); zfree(&env->arch); zfree(&env->cpu_desc); zfree(&env->cpuid); zfree(&env->cmdline); zfree(&env->cmdline_argv); zfree(&env->sibling_cores); zfree(&env->sibling_threads); zfree(&env->pmu_mappings); zfree(&env->cpu); for (i = 0; i < env->nr_numa_nodes; i++) cpu_map__put(env->numa_nodes[i].map); zfree(&env->numa_nodes); for (i = 0; i < env->caches_cnt; i++) cpu_cache_level__free(&env->caches[i]); zfree(&env->caches); }

Contributors

PersonTokensPropCommitsCommitProp
arnaldo carvalho de meloarnaldo carvalho de melo11162.36%133.33%
jiri olsajiri olsa6737.64%266.67%
Total178100.00%3100.00%


int perf_env__set_cmdline(struct perf_env *env, int argc, const char *argv[]) { int i; /* do not include NULL termination */ env->cmdline_argv = calloc(argc, sizeof(char *)); if (env->cmdline_argv == NULL) goto out_enomem; /* * Must copy argv contents because it gets moved around during option * parsing: */ for (i = 0; i < argc ; i++) { env->cmdline_argv[i] = argv[i]; if (env->cmdline_argv[i] == NULL) goto out_free; } env->nr_cmdline = argc; return 0; out_free: zfree(&env->cmdline_argv); out_enomem: return -ENOMEM; }

Contributors

PersonTokensPropCommitsCommitProp
arnaldo carvalho de meloarnaldo carvalho de melo116100.00%1100.00%
Total116100.00%1100.00%


int perf_env__read_cpu_topology_map(struct perf_env *env) { int cpu, nr_cpus; if (env->cpu != NULL) return 0; if (env->nr_cpus_avail == 0) env->nr_cpus_avail = sysconf(_SC_NPROCESSORS_CONF); nr_cpus = env->nr_cpus_avail; if (nr_cpus == -1) return -EINVAL; env->cpu = calloc(nr_cpus, sizeof(env->cpu[0])); if (env->cpu == NULL) return -ENOMEM; for (cpu = 0; cpu < nr_cpus; ++cpu) { env->cpu[cpu].core_id = cpu_map__get_core_id(cpu); env->cpu[cpu].socket_id = cpu_map__get_socket_id(cpu); } env->nr_cpus_avail = nr_cpus; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
arnaldo carvalho de meloarnaldo carvalho de melo143100.00%1100.00%
Total143100.00%1100.00%


void cpu_cache_level__free(struct cpu_cache_level *cache) { free(cache->type); free(cache->map); free(cache->size); }

Contributors

PersonTokensPropCommitsCommitProp
jiri olsajiri olsa31100.00%1100.00%
Total31100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
arnaldo carvalho de meloarnaldo carvalho de melo38379.63%360.00%
jiri olsajiri olsa9820.37%240.00%
Total481100.00%5100.00%
Directory: tools/perf/util
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.