On Thu, May 30, 2019 at 07:53:47AM -0700, kan.li...@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

Reply via email to