All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Ian Rogers <irogers@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@kernel.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	John Garry <john.g.garry@oracle.com>,
	Will Deacon <will@kernel.org>,
	James Clark <james.clark@linaro.org>,
	Mike Leach <mike.leach@linaro.org>, Leo Yan <leo.yan@linux.dev>,
	Guo Ren <guoren@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>, Nick Terrell <terrelln@fb.com>,
	"Masami Hiramatsu (Google)" <mhiramat@kernel.org>,
	Changbin Du <changbin.du@huawei.com>,
	Guilherme Amadio <amadio@gentoo.org>,
	Yang Jihong <yangjihong@bytedance.com>,
	Aditya Gupta <adityag@linux.ibm.com>,
	Athira Rajeev <atrajeev@linux.vnet.ibm.com>,
	Masahiro Yamada <masahiroy@kernel.org>,
	Bibo Mao <maobibo@loongson.cn>,
	Huacai Chen <chenhuacai@kernel.org>,
	Kajol Jain <kjain@linux.ibm.com>,
	Atish Patra <atishp@rivosinc.com>,
	Shenlin Liang <liangshenlin@eswincomputing.com>,
	Anup Patel <anup@brainfault.org>,
	Oliver Upton <oliver.upton@linux.dev>,
	"Steinar H. Gunderson" <sesse@google.com>,
	"Dr. David Alan Gilbert" <linux@treblig.org>,
	Chen Pei <cp0613@linux.alibaba.com>,
	Dima Kogan <dima@secretsauce.net>,
	Przemek Kitszel <przemyslaw.kitszel@intel.com>,
	"David S. Miller" <davem@davemloft.net>,
	Alexander Lobakin <aleksander.lobakin@intel.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org,
	linux-riscv@lists.infradead.org
Subject: Re: [PATCH v3 04/20] perf disasm: Add e_machine/e_flags to struct arch
Date: Fri, 8 Nov 2024 10:38:24 -0800	[thread overview]
Message-ID: <Zy5aoMnY2nupb7SX@google.com> (raw)
In-Reply-To: <CAP-5=fXe-gJ6pXwdTgGqScCR+mKS2FBfVDsbih7vL-1kPKAvaA@mail.gmail.com>

On Fri, Nov 08, 2024 at 10:19:52AM -0800, Ian Rogers wrote:
> On Fri, Nov 8, 2024 at 9:33 AM Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > On Wed, Oct 16, 2024 at 05:25:04PM -0700, Ian Rogers wrote:
> > > Currently functions like get_dwarf_regnum only work with the host
> > > architecture. Carry the elf machine and flags in struct arch so that
> > > in disassembly these can be used to allow cross platform disassembly.
> > >
> > > Signed-off-by: Ian Rogers <irogers@google.com>
> > > ---
> > >  tools/perf/arch/arc/annotate/instructions.c       | 2 ++
> > >  tools/perf/arch/arm/annotate/instructions.c       | 2 ++
> > >  tools/perf/arch/arm64/annotate/instructions.c     | 2 ++
> > >  tools/perf/arch/csky/annotate/instructions.c      | 7 ++++++-
> > >  tools/perf/arch/loongarch/annotate/instructions.c | 2 ++
> > >  tools/perf/arch/mips/annotate/instructions.c      | 2 ++
> > >  tools/perf/arch/powerpc/annotate/instructions.c   | 2 ++
> > >  tools/perf/arch/riscv64/annotate/instructions.c   | 2 ++
> > >  tools/perf/arch/s390/annotate/instructions.c      | 2 ++
> > >  tools/perf/arch/sparc/annotate/instructions.c     | 2 ++
> > >  tools/perf/arch/x86/annotate/instructions.c       | 3 ++-
> > >  tools/perf/util/disasm.h                          | 4 ++++
> > >  12 files changed, 30 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/tools/perf/arch/arc/annotate/instructions.c b/tools/perf/arch/arc/annotate/instructions.c
> > > index 2f00e995c7e3..e5619770a1af 100644
> > > --- a/tools/perf/arch/arc/annotate/instructions.c
> > > +++ b/tools/perf/arch/arc/annotate/instructions.c
> > > @@ -5,5 +5,7 @@ static int arc__annotate_init(struct arch *arch, char *cpuid __maybe_unused)
> > >  {
> > >       arch->initialized = true;
> > >       arch->objdump.comment_char = ';';
> > > +     arch->e_machine = EM_ARC;
> > > +     arch->e_flags = 0;
> > >       return 0;
> > >  }
> > > diff --git a/tools/perf/arch/arm/annotate/instructions.c b/tools/perf/arch/arm/annotate/instructions.c
> > > index 2ff6cedeb9c5..cf91a43362b0 100644
> > > --- a/tools/perf/arch/arm/annotate/instructions.c
> > > +++ b/tools/perf/arch/arm/annotate/instructions.c
> > > @@ -53,6 +53,8 @@ static int arm__annotate_init(struct arch *arch, char *cpuid __maybe_unused)
> > >       arch->associate_instruction_ops   = arm__associate_instruction_ops;
> > >       arch->objdump.comment_char        = ';';
> > >       arch->objdump.skip_functions_char = '+';
> > > +     arch->e_machine = EM_ARM;
> > > +     arch->e_flags = 0;
> > >       return 0;
> > >
> > >  out_free_call:
> > > diff --git a/tools/perf/arch/arm64/annotate/instructions.c b/tools/perf/arch/arm64/annotate/instructions.c
> > > index f86d9f4798bd..d465d093e7eb 100644
> > > --- a/tools/perf/arch/arm64/annotate/instructions.c
> > > +++ b/tools/perf/arch/arm64/annotate/instructions.c
> > > @@ -113,6 +113,8 @@ static int arm64__annotate_init(struct arch *arch, char *cpuid __maybe_unused)
> > >       arch->associate_instruction_ops   = arm64__associate_instruction_ops;
> > >       arch->objdump.comment_char        = '/';
> > >       arch->objdump.skip_functions_char = '+';
> > > +     arch->e_machine = EM_AARCH64;
> > > +     arch->e_flags = 0;
> > >       return 0;
> > >
> > >  out_free_call:
> > > diff --git a/tools/perf/arch/csky/annotate/instructions.c b/tools/perf/arch/csky/annotate/instructions.c
> > > index 5337bfb7d5fc..14270311d215 100644
> > > --- a/tools/perf/arch/csky/annotate/instructions.c
> > > +++ b/tools/perf/arch/csky/annotate/instructions.c
> > > @@ -43,6 +43,11 @@ static int csky__annotate_init(struct arch *arch, char *cpuid __maybe_unused)
> > >       arch->initialized = true;
> > >       arch->objdump.comment_char = '/';
> > >       arch->associate_instruction_ops = csky__associate_ins_ops;
> > > -
> > > +     arch->e_machine = EM_CSKY;
> > > +#if defined(__CSKYABIV2__)
> > > +     arch->e_flags = EF_CSKY_ABIV2;
> > > +#else
> > > +     arch->e_flags = EF_CSKY_ABIV1;
> > > +#endif
> >
> > By moving this into the general code, it should take care of old systems
> > that doesn't have the macro.
> >
> >   In file included from util/disasm.c:109:
> >   /linux/tools/perf/arch/csky/annotate/instructions.c: In function 'csky__annotate_init':
> >   /linux/tools/perf/arch/csky/annotate/instructions.c:50:25: error: 'EF_CSKY_ABIV1' undeclared (first use in this function)
> >      50 |         arch->e_flags = EF_CSKY_ABIV1;
> >         |                         ^~~~~~~~~~~~~
> >   /linux/tools/perf/arch/csky/annotate/instructions.c:50:25: note: each undeclared identifier is reported only once for each function it appears in
> 
> EF_CSKY_ABIV1 is defined in elf.h and has been there at least 5 years in libelf:
> https://sourceware.org/git/?p=elfutils.git;a=commit;f=libelf/elf.h;h=9c82942ae7355a3226c53a92c2c73b33193c5e33
> I suspected the issue here is missing elf.h include, but the .c file
> is included in tools/perf/util/disasm.c and that must have a
> transitive dependency given other things are building. Do you want me
> to send a patch making this conditional with extra #ifdefs or re-send
> the series?

Yeah, it's unfortunate but I think we can have a small incremental diff
here to define them if it's not there.  Then I'll squash it to the
patch.

> 
> > Also, I think __CSKYABIV2__ is defined only when the host is csky.  So
> > it'll use ABI v1 on cross env.  I'm not sure if it's a problem.  We may
> > need to save the ABI somewhere in the metadata later.
> 
> Agreed. In general we should read e_machine and e_flags from the ELF
> file, so I'm not sure new metadata is needed. This patch is trying to
> lay groundwork for that.

I understand that.  Yeah it should come from the binary.

Thanks,
Namhyung



WARNING: multiple messages have this Message-ID (diff)
From: Namhyung Kim <namhyung@kernel.org>
To: Ian Rogers <irogers@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@kernel.org>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	John Garry <john.g.garry@oracle.com>,
	Will Deacon <will@kernel.org>,
	James Clark <james.clark@linaro.org>,
	Mike Leach <mike.leach@linaro.org>, Leo Yan <leo.yan@linux.dev>,
	Guo Ren <guoren@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>, Nick Terrell <terrelln@fb.com>,
	"Masami Hiramatsu (Google)" <mhiramat@kernel.org>,
	Changbin Du <changbin.du@huawei.com>,
	Guilherme Amadio <amadio@gentoo.org>,
	Yang Jihong <yangjihong@bytedance.com>,
	Aditya Gupta <adityag@linux.ibm.com>,
	Athira Rajeev <atrajeev@linux.vnet.ibm.com>,
	Masahiro Yamada <masahiroy@kernel.org>,
	Bibo Mao <maobibo@loongson.cn>,
	Huacai Chen <chenhuacai@kernel.org>,
	Kajol Jain <kjain@linux.ibm.com>,
	Atish Patra <atishp@rivosinc.com>,
	Shenlin Liang <liangshenlin@eswincomputing.com>,
	Anup Patel <anup@brainfault.org>,
	Oliver Upton <oliver.upton@linux.dev>,
	"Steinar H. Gunderson" <sesse@google.com>,
	"Dr. David Alan Gilbert" <linux@treblig.org>,
	Chen Pei <cp0613@linux.alibaba.com>,
	Dima Kogan <dima@secretsauce.net>,
	Przemek Kitszel <przemyslaw.kitszel@intel.com>,
	"David S. Miller" <davem@davemloft.net>,
	Alexander Lobakin <aleksander.lobakin@intel.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org,
	linux-riscv@lists.infradead.org
Subject: Re: [PATCH v3 04/20] perf disasm: Add e_machine/e_flags to struct arch
Date: Fri, 8 Nov 2024 10:38:24 -0800	[thread overview]
Message-ID: <Zy5aoMnY2nupb7SX@google.com> (raw)
In-Reply-To: <CAP-5=fXe-gJ6pXwdTgGqScCR+mKS2FBfVDsbih7vL-1kPKAvaA@mail.gmail.com>

On Fri, Nov 08, 2024 at 10:19:52AM -0800, Ian Rogers wrote:
> On Fri, Nov 8, 2024 at 9:33 AM Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > On Wed, Oct 16, 2024 at 05:25:04PM -0700, Ian Rogers wrote:
> > > Currently functions like get_dwarf_regnum only work with the host
> > > architecture. Carry the elf machine and flags in struct arch so that
> > > in disassembly these can be used to allow cross platform disassembly.
> > >
> > > Signed-off-by: Ian Rogers <irogers@google.com>
> > > ---
> > >  tools/perf/arch/arc/annotate/instructions.c       | 2 ++
> > >  tools/perf/arch/arm/annotate/instructions.c       | 2 ++
> > >  tools/perf/arch/arm64/annotate/instructions.c     | 2 ++
> > >  tools/perf/arch/csky/annotate/instructions.c      | 7 ++++++-
> > >  tools/perf/arch/loongarch/annotate/instructions.c | 2 ++
> > >  tools/perf/arch/mips/annotate/instructions.c      | 2 ++
> > >  tools/perf/arch/powerpc/annotate/instructions.c   | 2 ++
> > >  tools/perf/arch/riscv64/annotate/instructions.c   | 2 ++
> > >  tools/perf/arch/s390/annotate/instructions.c      | 2 ++
> > >  tools/perf/arch/sparc/annotate/instructions.c     | 2 ++
> > >  tools/perf/arch/x86/annotate/instructions.c       | 3 ++-
> > >  tools/perf/util/disasm.h                          | 4 ++++
> > >  12 files changed, 30 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/tools/perf/arch/arc/annotate/instructions.c b/tools/perf/arch/arc/annotate/instructions.c
> > > index 2f00e995c7e3..e5619770a1af 100644
> > > --- a/tools/perf/arch/arc/annotate/instructions.c
> > > +++ b/tools/perf/arch/arc/annotate/instructions.c
> > > @@ -5,5 +5,7 @@ static int arc__annotate_init(struct arch *arch, char *cpuid __maybe_unused)
> > >  {
> > >       arch->initialized = true;
> > >       arch->objdump.comment_char = ';';
> > > +     arch->e_machine = EM_ARC;
> > > +     arch->e_flags = 0;
> > >       return 0;
> > >  }
> > > diff --git a/tools/perf/arch/arm/annotate/instructions.c b/tools/perf/arch/arm/annotate/instructions.c
> > > index 2ff6cedeb9c5..cf91a43362b0 100644
> > > --- a/tools/perf/arch/arm/annotate/instructions.c
> > > +++ b/tools/perf/arch/arm/annotate/instructions.c
> > > @@ -53,6 +53,8 @@ static int arm__annotate_init(struct arch *arch, char *cpuid __maybe_unused)
> > >       arch->associate_instruction_ops   = arm__associate_instruction_ops;
> > >       arch->objdump.comment_char        = ';';
> > >       arch->objdump.skip_functions_char = '+';
> > > +     arch->e_machine = EM_ARM;
> > > +     arch->e_flags = 0;
> > >       return 0;
> > >
> > >  out_free_call:
> > > diff --git a/tools/perf/arch/arm64/annotate/instructions.c b/tools/perf/arch/arm64/annotate/instructions.c
> > > index f86d9f4798bd..d465d093e7eb 100644
> > > --- a/tools/perf/arch/arm64/annotate/instructions.c
> > > +++ b/tools/perf/arch/arm64/annotate/instructions.c
> > > @@ -113,6 +113,8 @@ static int arm64__annotate_init(struct arch *arch, char *cpuid __maybe_unused)
> > >       arch->associate_instruction_ops   = arm64__associate_instruction_ops;
> > >       arch->objdump.comment_char        = '/';
> > >       arch->objdump.skip_functions_char = '+';
> > > +     arch->e_machine = EM_AARCH64;
> > > +     arch->e_flags = 0;
> > >       return 0;
> > >
> > >  out_free_call:
> > > diff --git a/tools/perf/arch/csky/annotate/instructions.c b/tools/perf/arch/csky/annotate/instructions.c
> > > index 5337bfb7d5fc..14270311d215 100644
> > > --- a/tools/perf/arch/csky/annotate/instructions.c
> > > +++ b/tools/perf/arch/csky/annotate/instructions.c
> > > @@ -43,6 +43,11 @@ static int csky__annotate_init(struct arch *arch, char *cpuid __maybe_unused)
> > >       arch->initialized = true;
> > >       arch->objdump.comment_char = '/';
> > >       arch->associate_instruction_ops = csky__associate_ins_ops;
> > > -
> > > +     arch->e_machine = EM_CSKY;
> > > +#if defined(__CSKYABIV2__)
> > > +     arch->e_flags = EF_CSKY_ABIV2;
> > > +#else
> > > +     arch->e_flags = EF_CSKY_ABIV1;
> > > +#endif
> >
> > By moving this into the general code, it should take care of old systems
> > that doesn't have the macro.
> >
> >   In file included from util/disasm.c:109:
> >   /linux/tools/perf/arch/csky/annotate/instructions.c: In function 'csky__annotate_init':
> >   /linux/tools/perf/arch/csky/annotate/instructions.c:50:25: error: 'EF_CSKY_ABIV1' undeclared (first use in this function)
> >      50 |         arch->e_flags = EF_CSKY_ABIV1;
> >         |                         ^~~~~~~~~~~~~
> >   /linux/tools/perf/arch/csky/annotate/instructions.c:50:25: note: each undeclared identifier is reported only once for each function it appears in
> 
> EF_CSKY_ABIV1 is defined in elf.h and has been there at least 5 years in libelf:
> https://sourceware.org/git/?p=elfutils.git;a=commit;f=libelf/elf.h;h=9c82942ae7355a3226c53a92c2c73b33193c5e33
> I suspected the issue here is missing elf.h include, but the .c file
> is included in tools/perf/util/disasm.c and that must have a
> transitive dependency given other things are building. Do you want me
> to send a patch making this conditional with extra #ifdefs or re-send
> the series?

Yeah, it's unfortunate but I think we can have a small incremental diff
here to define them if it's not there.  Then I'll squash it to the
patch.

> 
> > Also, I think __CSKYABIV2__ is defined only when the host is csky.  So
> > it'll use ABI v1 on cross env.  I'm not sure if it's a problem.  We may
> > need to save the ABI somewhere in the metadata later.
> 
> Agreed. In general we should read e_machine and e_flags from the ELF
> file, so I'm not sure new metadata is needed. This patch is trying to
> lay groundwork for that.

I understand that.  Yeah it should come from the binary.

Thanks,
Namhyung


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2024-11-08 18:43 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-17  0:25 [PATCH v3 00/20] Remove PERF_HAVE_DWARF_REGS Ian Rogers
2024-10-17  0:25 ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 01/20] perf bpf-prologue: Remove unused file Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 02/20] perf dwarf-regs: Remove PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 03/20] perf dwarf-regs: Add EM_HOST and EF_HOST defines Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 04/20] perf disasm: Add e_machine/e_flags to struct arch Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-11-08 17:33   ` Namhyung Kim
2024-11-08 17:33     ` Namhyung Kim
2024-11-08 18:19     ` Ian Rogers
2024-11-08 18:19       ` Ian Rogers
2024-11-08 18:38       ` Namhyung Kim [this message]
2024-11-08 18:38         ` Namhyung Kim
2024-11-08 18:45         ` Ian Rogers
2024-11-08 18:45           ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 05/20] perf dwarf-regs: Pass accurate disassembly machine to get_dwarf_regnum Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 06/20] perf dwarf-regs: Pass ELF flags to get_dwarf_regstr Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 07/20] perf dwarf-regs: Move x86 dwarf-regs out of arch Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 08/20] perf arm64: Remove dwarf-regs.c Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 09/20] perf arm: " Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 10/20] perf dwarf-regs: Move csky dwarf-regs out of arch Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-11-08 20:03   ` Namhyung Kim
2024-11-08 20:03     ` Namhyung Kim
2024-11-08 23:08     ` Ian Rogers
2024-11-08 23:08       ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 11/20] perf loongarch: Remove dwarf-regs.c Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 12/20] perf mips: " Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 13/20] perf dwarf-regs: Move powerpc dwarf-regs out of arch Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 14/20] perf riscv: Remove dwarf-regs.c and add dwarf-regs-table.h Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-18 19:39   ` Palmer Dabbelt
2024-10-18 19:39     ` Palmer Dabbelt
2024-10-17  0:25 ` [PATCH v3 15/20] perf s390: Remove dwarf-regs.c Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 16/20] perf sh: " Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 17/20] perf sparc: " Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 18/20] perf xtensa: " Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 19/20] perf dwarf-regs: Remove get_arch_regstr code Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-10-17  0:25 ` [PATCH v3 20/20] perf build: Remove PERF_HAVE_DWARF_REGS Ian Rogers
2024-10-17  0:25   ` Ian Rogers
2024-11-07 19:29 ` [PATCH v3 00/20] " Namhyung Kim
2024-11-07 19:29   ` Namhyung Kim
2024-11-08  0:00   ` Masami Hiramatsu
2024-11-08  0:00     ` Masami Hiramatsu
2024-11-08 18:33     ` Namhyung Kim
2024-11-08 18:33       ` Namhyung Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Zy5aoMnY2nupb7SX@google.com \
    --to=namhyung@kernel.org \
    --cc=acme@kernel.org \
    --cc=adityag@linux.ibm.com \
    --cc=adrian.hunter@intel.com \
    --cc=aleksander.lobakin@intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=amadio@gentoo.org \
    --cc=anup@brainfault.org \
    --cc=aou@eecs.berkeley.edu \
    --cc=atishp@rivosinc.com \
    --cc=atrajeev@linux.vnet.ibm.com \
    --cc=changbin.du@huawei.com \
    --cc=chenhuacai@kernel.org \
    --cc=cp0613@linux.alibaba.com \
    --cc=davem@davemloft.net \
    --cc=dima@secretsauce.net \
    --cc=guoren@kernel.org \
    --cc=irogers@google.com \
    --cc=james.clark@linaro.org \
    --cc=john.g.garry@oracle.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.com \
    --cc=kjain@linux.ibm.com \
    --cc=leo.yan@linux.dev \
    --cc=liangshenlin@eswincomputing.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-csky@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux@treblig.org \
    --cc=maobibo@loongson.cn \
    --cc=mark.rutland@arm.com \
    --cc=masahiroy@kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mike.leach@linaro.org \
    --cc=mingo@redhat.com \
    --cc=oliver.upton@linux.dev \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=peterz@infradead.org \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=sesse@google.com \
    --cc=terrelln@fb.com \
    --cc=will@kernel.org \
    --cc=yangjihong@bytedance.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.