Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.3-rc7 88 lines 1.8 kB view raw
1#ifndef __PERF_CPUMAP_H 2#define __PERF_CPUMAP_H 3 4#include <stdio.h> 5#include <stdbool.h> 6#include <linux/atomic.h> 7 8#include "perf.h" 9#include "util/debug.h" 10 11struct cpu_map { 12 atomic_t refcnt; 13 int nr; 14 int map[]; 15}; 16 17struct cpu_map *cpu_map__new(const char *cpu_list); 18struct cpu_map *cpu_map__dummy_new(void); 19struct cpu_map *cpu_map__read(FILE *file); 20size_t cpu_map__fprintf(struct cpu_map *map, FILE *fp); 21int cpu_map__get_socket(struct cpu_map *map, int idx); 22int cpu_map__get_core(struct cpu_map *map, int idx); 23int cpu_map__build_socket_map(struct cpu_map *cpus, struct cpu_map **sockp); 24int cpu_map__build_core_map(struct cpu_map *cpus, struct cpu_map **corep); 25 26struct cpu_map *cpu_map__get(struct cpu_map *map); 27void cpu_map__put(struct cpu_map *map); 28 29static inline int cpu_map__socket(struct cpu_map *sock, int s) 30{ 31 if (!sock || s > sock->nr || s < 0) 32 return 0; 33 return sock->map[s]; 34} 35 36static inline int cpu_map__id_to_socket(int id) 37{ 38 return id >> 16; 39} 40 41static inline int cpu_map__id_to_cpu(int id) 42{ 43 return id & 0xffff; 44} 45 46static inline int cpu_map__nr(const struct cpu_map *map) 47{ 48 return map ? map->nr : 1; 49} 50 51static inline bool cpu_map__empty(const struct cpu_map *map) 52{ 53 return map ? map->map[0] == -1 : true; 54} 55 56int max_cpu_num; 57int max_node_num; 58int *cpunode_map; 59 60int cpu__setup_cpunode_map(void); 61 62static inline int cpu__max_node(void) 63{ 64 if (unlikely(!max_node_num)) 65 pr_debug("cpu_map not initialized\n"); 66 67 return max_node_num; 68} 69 70static inline int cpu__max_cpu(void) 71{ 72 if (unlikely(!max_cpu_num)) 73 pr_debug("cpu_map not initialized\n"); 74 75 return max_cpu_num; 76} 77 78static inline int cpu__get_node(int cpu) 79{ 80 if (unlikely(cpunode_map == NULL)) { 81 pr_debug("cpu_map not initialized\n"); 82 return -1; 83 } 84 85 return cpunode_map[cpu]; 86} 87 88#endif /* __PERF_CPUMAP_H */