/* * Copyright 2013-2015, Michael Ellerman, IBM Corp. * Licensed under GPLv2. */ #define _GNU_SOURCE /* For CPU_ZERO etc. */ #include #include #include #include #include #include #include #include #include #include "utils.h" static char auxv[4096]; void *get_auxv_entry(int type) { ElfW(auxv_t) *p; void *result; ssize_t num; int fd; fd = open("/proc/self/auxv", O_RDONLY); if (fd == -1) { perror("open"); return NULL; } result = NULL; num = read(fd, auxv, sizeof(auxv)); if (num < 0) { perror("read"); goto out; } if (num > sizeof(auxv)) { printf("Overflowed auxv buffer\n"); goto out; } p = (ElfW(auxv_t) *)auxv; while (p->a_type != AT_NULL) { if (p->a_type == type) { result = (void *)p->a_un.a_val; break; } p++; } out: close(fd); return result; } int pick_online_cpu(void) { cpu_set_t mask; int cpu; CPU_ZERO(&mask); if (sched_getaffinity(0, sizeof(mask), &mask)) { perror("sched_getaffinity"); return -1; } /* We prefer a primary thread, but skip 0 */ for (cpu = 8; cpu < CPU_SETSIZE; cpu += 8) if (CPU_ISSET(cpu, &mask)) return cpu; /* Search for anything, but in reverse */ for (cpu = CPU_SETSIZE - 1; cpu >= 0; cpu--) if (CPU_ISSET(cpu, &mask)) return cpu; printf("No cpus in affinity mask?!\n"); return -1; } mit' value='switch'/> net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-12-11 10:17:39 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2016-12-11 10:17:39 -0800
commit2e4333c14de06a333783d6812cf3c4998f78b0c8 (patch)
tree368428514d70f34f2261c7f954f241f886d6bb51 /tools/perf/builtin-trace.c
parent045169816b31b10faed984b01c390db1b32ee4c1 (diff)
parentba735155b9647b6167fd50276ca0fbfbce4e836c (diff)
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS fixes from Ralf Baechle: "Two more MIPS fixes for 4.9: - RTC: Return -ENODEV so an external RTC will be tried - Fix mask of GPE frequency These two have been tested on Imagination's automated test system and also both received positive reviews on the linux-mips mailing list" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: Lantiq: Fix mask of GPE frequency MIPS: Return -ENODEV from weak implementation of rtc_mips_set_time
Diffstat (limited to 'tools/perf/builtin-trace.c')