cregit-Linux how code gets into the kernel

Release 4.14 tools/perf/util/smt.c

Directory: tools/perf/util
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <linux/bitops.h>
#include "api/fs/fs.h"
#include "smt.h"


int smt_on(void) { static bool cached; static int cached_result; int cpu; int ncpu; if (cached) return cached_result; ncpu = sysconf(_SC_NPROCESSORS_CONF); for (cpu = 0; cpu < ncpu; cpu++) { unsigned long long siblings; char *str; size_t strlen; char fn[256]; snprintf(fn, sizeof fn, "devices/system/cpu/cpu%d/topology/thread_siblings", cpu); if (sysfs__read_str(fn, &str, &strlen) < 0) continue; /* Entry is hex, but does not have 0x, so need custom parser */ siblings = strtoull(str, NULL, 16); free(str); if (hweight64(siblings) > 1) { cached_result = 1; cached = true; break; } } if (!cached) { cached_result = 0; cached = true; } return cached_result; }

Contributors

PersonTokensPropCommitsCommitProp
Andi Kleen151100.00%1100.00%
Total151100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Andi Kleen169100.00%1100.00%
Total169100.00%1100.00%
Directory: tools/perf/util
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.