[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cc4eea9a-e18e-af7e-2290-98727fce2f6a@linux.intel.com>
Date: Mon, 3 Jun 2019 13:42:58 -0400
From: "Liang, Kan" <kan.liang@...ux.intel.com>
To: Jiri Olsa <jolsa@...hat.com>
Cc: acme@...nel.org, jolsa@...nel.org, mingo@...hat.com,
linux-kernel@...r.kernel.org, peterz@...radead.org,
ak@...ux.intel.com
Subject: Re: [PATCH V2 3/5] perf stat: Support per-die aggregation
On 6/3/2019 12:36 PM, Jiri Olsa wrote:
> On Thu, May 30, 2019 at 07:53:47AM -0700, kan.liang@...ux.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
I will fix it in v3.
>
>> + * 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?
I think there is nothing we can do for current encoding, if the socket
number or die number is bigger than 8 bits. We have to design a new
encoding method, which needs to update the perf tool.
So I use a similar expression from process_cpu_topology().
if (do_core_id_test && nr != (u32)-1 && nr > (u32)cpu_nr) {
pr_debug("socket_id number is too big."
"You may need to upgrade the perf tool.\n");
goto free_cpu;
}
Any suggestions for the warning message?
>
>> + 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 for the review. I will send out V3 after the comments are addressed.
Thanks,
Kan
Powered by blists - more mailing lists