Messages in this thread | | | Date | Mon, 3 Jun 2019 18:36:36 +0200 | From | Jiri Olsa <> | Subject | Re: [PATCH V2 3/5] perf stat: Support per-die aggregation |
| |
On Thu, May 30, 2019 at 07:53:47AM -0700, kan.liang@linux.intel.com wrote:
SNIP
> + > static int perf_env__get_core(struct cpu_map *map, int idx, void *data) > { > struct perf_env *env = data; > int core = -1, cpu = perf_env__get_cpu(env, map, idx); > > if (cpu != -1) { > - int socket_id = env->cpu[cpu].socket_id; > - > /* > - * Encode socket in upper 16 bits > - * core_id is relative to socket, and > + * Encode socket in upper 24 bits
please note we use upper 8 bits for socket number, the comments suggests it's 24 bits
> + * encode die id in upper 16 bits > + * core_id is relative to socket and die, > * we need a global id. So we combine > - * socket + core id. > + * socket + die id + core id > */ > - core = (socket_id << 16) | (env->cpu[cpu].core_id & 0xffff); > + if (WARN_ONCE(env->cpu[cpu].socket_id >> 8, > + "The socket_id number is too big. Please upgrade the perf tool.\n"))
hum, how's perf tool upgrade going to help in here?
> + return -1; > + > + if (WARN_ONCE(env->cpu[cpu].die_id >> 8, > + "The die_id number is too big. Please upgrade the perf tool.\n")) > + return -1; > + > + core = (env->cpu[cpu].socket_id << 24) | > + (env->cpu[cpu].die_id << 16) | > + (env->cpu[cpu].core_id & 0xffff); > }
other than comments above, the patchset looks good to me
thanks, jirka
| |