Thread (34 messages) 34 messages, 7 authors, 2021-07-23

RE: [PATCH v4 10/11] perf env: Set flag for kernel is 64-bit mode

From: "Hunter, Adrian" <adrian.hunter@intel.com>
Date: 2021-07-13 17:31:08
Also in: linux-arm-kernel, lkml

-----Original Message-----
From: Leo Yan <redacted>
Sent: Tuesday, July 13, 2021 6:10 PM
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Hunter, Adrian <adrian.hunter@intel.com>; Peter Zijlstra
[off-list ref]; Ingo Molnar [off-list ref]; Mark Rutland
[off-list ref]; Alexander Shishkin
[off-list ref]; Jiri Olsa [off-list ref];
Namhyung Kim [off-list ref]; Thomas Gleixner
[off-list ref]; Borislav Petkov [off-list ref]; x86@kernel.org; H.
Peter Anvin [off-list ref]; Mathieu Poirier
[off-list ref]; Suzuki K Poulose
[off-list ref]; Mike Leach [off-list ref]; linux-
perf-users@vger.kernel.org; linux-kernel@vger.kernel.org;
coresight@lists.linaro.org; linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 10/11] perf env: Set flag for kernel is 64-bit mode

Hi Arnaldo, Adrian,

On Mon, Jul 12, 2021 at 03:14:35PM -0300, Arnaldo Carvalho de Melo wrote:
quoted
Em Sun, Jul 11, 2021 at 06:41:04PM +0800, Leo Yan escreveu:
quoted
It's useful to know that the kernel is running in 32-bit or 64-bit
mode.  E.g. We can decide if perf tool is running in compat mode
from this info.

This patch adds a global variable "kernel_is_64_bit", it's
initialized when a session setups environment, its value is decided
by checking the architecture string.

Signed-off-by: Leo Yan <redacted>
---
 tools/perf/util/env.c | 17 ++++++++++++++++-  tools/perf/util/env.h
|  1 +
 2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/env.c b/tools/perf/util/env.c index
ebc5e9ad35db..345635a2e842 100644
--- a/tools/perf/util/env.c
+++ b/tools/perf/util/env.c
@@ -11,6 +11,7 @@
 #include <stdlib.h>
 #include <string.h>

+int kernel_is_64_bit;
 struct perf_env perf_env;
Why can't this be in 'struct perf_env'?
Good question.  I considered to add it in struct perf_env but finally I used this
way; the reason is this variable "kernel_is_64_bit" is only used during
recording phase for AUX ring buffer, and don't use it for report.  So seems to
me it's over complexity to add a new field and just wander if it's necessary to
save this field as new feature in the perf header.
I think we store the arch, so if the "kernel_is_64_bit" calculation depends only on arch
then I guess we don't need a new feature at the moment.
Combining the comment from Adrian in another email, I think it's good to add
a new field "compat_mode" in the struct perf_env, and this field will be
initialized in build-record.c.  Currently we don't need to save this value into
the perf file, if later we need to use this value for decoding phase, then we
can add a new feature item to save "compat_mode"
into the perf file's header.

If you have any different idea, please let me know.  Thanks!

Leo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help