On Fri, Aug 21, 2015 at 08:25:24PM +0000, Liang, Kan wrote: SNIP
> > > > we need global topology information in perf.data and use the mapping > > from there, we can't use current server info > > > > we currently store core_siblings_list and thread_siblings_list, in topology > > FEATURE, which is probably not enough > > > > core_siblings_list includes the cpu list in the same socket. > thread_siblings_list includes the cpu list in the same core. > numa_nodes includes the cpu list for each node. > > It looks we have enough data from topology FEATURE. hum, haven't hecked deeply.. how will you get core id for cpu? > > What do you think about the function as below? > It gets the socket id from env. some sort of caching would be nice, I guess we could store those cpumap objects within perf_session_env jirka > > +int > +perf_env_get_socket(struct perf_session_env *env, int cpu) > +{ > + int socket_nr, cpu_nr, i, j; > + struct cpu_map *socket_map = NULL; > + char *str; > + > + if (env == NULL) > + return -1; > + > + socket_nr = env->nr_sibling_cores; > + str = env->sibling_cores; > + > + for (i = 0; i < socket_nr; i++) { > + socket_map = cpu_map__new(str); > + str += strlen(str) + 1; > + if (!socket_map) > + continue; > + cpu_nr = socket_map->nr; > + for (j = 0; j < cpu_nr; j++) { > + if (cpu == socket_map->map[j]) { > + free(socket_map); > + return i; > + } > + } > + free(socket_map); > + } > + > + return -1; > +} > > Thanks, > Kan > > > I think we need new feature that stores topology info and new interface > > that will provide all useful mappings: > > idx -> cpu > > cpu -> core > > cpu -> socket > > cpu -> node > > > > in another patchset I used new CPUMAP event: > > https://git.kernel.org/cgit/linux/kernel/git/jolsa/perf.git/commit/?h=perf/ > > stat_script_3&id=37b7b8449aa23acdfe9dec5a7a371e91c5323da5 > > > > we might need both ways (new FEATURE and event) to support pipe > > reports > > > > jirka -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/