All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] ARM64: add perf support
@ 2013-12-16 16:49 jean.pihet
  2013-12-17 10:45 ` Ingo Molnar
  0 siblings, 1 reply; 8+ messages in thread
From: jean.pihet @ 2013-12-16 16:49 UTC (permalink / raw)
  To: linux-kernel, linaro-kernel, Arnaldo, Will Deacon
  Cc: patches, Jiri Olsa, Ingo Molnar, Jean Pihet

From: Jean Pihet <jean.pihet@linaro.org>

Add perf support for the AARCH64 architecture. This includes the
support for:
- AARCH64 perf registers definition and hooks,
- compat mode registers use, i.e. profiling a 32-bit binary on
   a 64-bit system,
- unwinding using the dwarf information from the .debug_frame
   section of the ELF binary; only in 64-bit mode,
- unwinding using the frame pointer information; in 64-bit and
   compat modes.

ToDo:
- add support for unwinding using the dwarf information in compat
   mode. This requires some changes to the libunwind code.

Tested on ARMv7 and ARMv8 platforms. The compat mode has been tested
on ARMv8 using statically built 32-bit binaries.


Jean Pihet (3):
  ARM64: perf: add support for perf registers API
  ARM64: perf: wire up perf_regs and unwind support
  ARM64: perf: add support for frame pointer unwinding in compat mode

 arch/arm64/Kconfig                        |  2 +
 arch/arm64/include/asm/ptrace.h           |  1 +
 arch/arm64/include/uapi/asm/Kbuild        |  1 +
 arch/arm64/include/uapi/asm/perf_regs.h   | 40 ++++++++++++++
 arch/arm64/kernel/Makefile                |  1 +
 arch/arm64/kernel/perf_event.c            | 75 +++++++++++++++++++++++---
 arch/arm64/kernel/perf_regs.c             | 46 ++++++++++++++++
 tools/perf/arch/arm64/Makefile            |  7 +++
 tools/perf/arch/arm64/include/perf_regs.h | 88 +++++++++++++++++++++++++++++++
 tools/perf/arch/arm64/util/dwarf-regs.c   | 81 ++++++++++++++++++++++++++++
 tools/perf/arch/arm64/util/unwind.c       | 82 ++++++++++++++++++++++++++++
 tools/perf/config/Makefile                |  8 ++-
 12 files changed, 423 insertions(+), 9 deletions(-)
 create mode 100644 arch/arm64/include/uapi/asm/perf_regs.h
 create mode 100644 arch/arm64/kernel/perf_regs.c
 create mode 100644 tools/perf/arch/arm64/Makefile
 create mode 100644 tools/perf/arch/arm64/include/perf_regs.h
 create mode 100644 tools/perf/arch/arm64/util/dwarf-regs.c
 create mode 100644 tools/perf/arch/arm64/util/unwind.c

-- 
1.7.11.7


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 0/3] ARM64: add perf support
@ 2013-12-16 16:54 Jean Pihet
  2013-12-16 17:32 ` Will Deacon
  0 siblings, 1 reply; 8+ messages in thread
From: Jean Pihet @ 2013-12-16 16:54 UTC (permalink / raw)
  To: linux-arm-kernel

Add perf support for the AARCH64 architecture. This includes the
support for:
- AARCH64 perf registers definition and hooks,
- compat mode registers use, i.e. profiling a 32-bit binary on
   a 64-bit system,
- unwinding using the dwarf information from the .debug_frame
   section of the ELF binary; only in 64-bit mode,
- unwinding using the frame pointer information; in 64-bit and
   compat modes.

ToDo:
- add support for unwinding using the dwarf information in compat
   mode. This requires some changes to the libunwind code.

Tested on ARMv7 and ARMv8 platforms. The compat mode has been tested
on ARMv8 using statically built 32-bit binaries.


Jean Pihet (3):
  ARM64: perf: add support for perf registers API
  ARM64: perf: wire up perf_regs and unwind support
  ARM64: perf: add support for frame pointer unwinding in compat mode

 arch/arm64/Kconfig                        |  2 +
 arch/arm64/include/asm/ptrace.h           |  1 +
 arch/arm64/include/uapi/asm/Kbuild        |  1 +
 arch/arm64/include/uapi/asm/perf_regs.h   | 40 ++++++++++++++
 arch/arm64/kernel/Makefile                |  1 +
 arch/arm64/kernel/perf_event.c            | 75 +++++++++++++++++++++++---
 arch/arm64/kernel/perf_regs.c             | 46 ++++++++++++++++
 tools/perf/arch/arm64/Makefile            |  7 +++
 tools/perf/arch/arm64/include/perf_regs.h | 88 +++++++++++++++++++++++++++++++
 tools/perf/arch/arm64/util/dwarf-regs.c   | 81 ++++++++++++++++++++++++++++
 tools/perf/arch/arm64/util/unwind.c       | 82 ++++++++++++++++++++++++++++
 tools/perf/config/Makefile                |  8 ++-
 12 files changed, 423 insertions(+), 9 deletions(-)
 create mode 100644 arch/arm64/include/uapi/asm/perf_regs.h
 create mode 100644 arch/arm64/kernel/perf_regs.c
 create mode 100644 tools/perf/arch/arm64/Makefile
 create mode 100644 tools/perf/arch/arm64/include/perf_regs.h
 create mode 100644 tools/perf/arch/arm64/util/dwarf-regs.c
 create mode 100644 tools/perf/arch/arm64/util/unwind.c

-- 
1.7.11.7

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 0/3] ARM64: add perf support
  2013-12-16 16:54 Jean Pihet
@ 2013-12-16 17:32 ` Will Deacon
  2013-12-16 17:42   ` Jean Pihet
  0 siblings, 1 reply; 8+ messages in thread
From: Will Deacon @ 2013-12-16 17:32 UTC (permalink / raw)
  To: linux-arm-kernel

Jean,

On Mon, Dec 16, 2013 at 04:54:30PM +0000, Jean Pihet wrote:
> Add perf support for the AARCH64 architecture. This includes the
> support for:

To be fair, we do have perf support already. This is extending what we have
by adding additional arch-specific stuff.

> - AARCH64 perf registers definition and hooks,
> - compat mode registers use, i.e. profiling a 32-bit binary on
>    a 64-bit system,
> - unwinding using the dwarf information from the .debug_frame
>    section of the ELF binary; only in 64-bit mode,
> - unwinding using the frame pointer information; in 64-bit and
>    compat modes.

Why did you send out two copies of this series to different lists? Which one
should I be looking at?

/confused

Will

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 0/3] ARM64: add perf support
  2013-12-16 17:32 ` Will Deacon
@ 2013-12-16 17:42   ` Jean Pihet
  0 siblings, 0 replies; 8+ messages in thread
From: Jean Pihet @ 2013-12-16 17:42 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Will,

On 16 December 2013 18:32, Will Deacon <will.deacon@arm.com> wrote:
> Jean,
>
> On Mon, Dec 16, 2013 at 04:54:30PM +0000, Jean Pihet wrote:
>> Add perf support for the AARCH64 architecture. This includes the
>> support for:
>
> To be fair, we do have perf support already. This is extending what we have
> by adding additional arch-specific stuff.
Ok I can change the descriptions accordingly.

>> - AARCH64 perf registers definition and hooks,
>> - compat mode registers use, i.e. profiling a 32-bit binary on
>>    a 64-bit system,
>> - unwinding using the dwarf information from the .debug_frame
>>    section of the ELF binary; only in 64-bit mode,
>> - unwinding using the frame pointer information; in 64-bit and
>>    compat modes.
>
> Why did you send out two copies of this series to different lists? Which one
> should I be looking at?
The two copies actually are the same patches. I just forgot the l-a-k
ML address first and so re-sent the series. Sorry about that ;-|

> /confused

Thx for looking at the series!

>
> Will

Jean

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/3] ARM64: add perf support
  2013-12-16 16:49 [PATCH 0/3] ARM64: add perf support jean.pihet
@ 2013-12-17 10:45 ` Ingo Molnar
  2013-12-17 11:01   ` Will Deacon
  0 siblings, 1 reply; 8+ messages in thread
From: Ingo Molnar @ 2013-12-17 10:45 UTC (permalink / raw)
  To: jean.pihet, Arnaldo Carvalho de Melo
  Cc: linux-kernel, linaro-kernel, Arnaldo, Will Deacon, patches,
	Jiri Olsa


* jean.pihet@linaro.org <jean.pihet@linaro.org> wrote:

> From: Jean Pihet <jean.pihet@linaro.org>
> 
> Add perf support for the AARCH64 architecture. This includes the
> support for:
> - AARCH64 perf registers definition and hooks,
> - compat mode registers use, i.e. profiling a 32-bit binary on
>    a 64-bit system,
> - unwinding using the dwarf information from the .debug_frame
>    section of the ELF binary; only in 64-bit mode,
> - unwinding using the frame pointer information; in 64-bit and
>    compat modes.
> 
> ToDo:
> - add support for unwinding using the dwarf information in compat
>    mode. This requires some changes to the libunwind code.
> 
> Tested on ARMv7 and ARMv8 platforms. The compat mode has been tested
> on ARMv8 using statically built 32-bit binaries.
> 
> 
> Jean Pihet (3):
>   ARM64: perf: add support for perf registers API
>   ARM64: perf: wire up perf_regs and unwind support
>   ARM64: perf: add support for frame pointer unwinding in compat mode
> 
>  arch/arm64/Kconfig                        |  2 +
>  arch/arm64/include/asm/ptrace.h           |  1 +
>  arch/arm64/include/uapi/asm/Kbuild        |  1 +
>  arch/arm64/include/uapi/asm/perf_regs.h   | 40 ++++++++++++++
>  arch/arm64/kernel/Makefile                |  1 +
>  arch/arm64/kernel/perf_event.c            | 75 +++++++++++++++++++++++---
>  arch/arm64/kernel/perf_regs.c             | 46 ++++++++++++++++
>  tools/perf/arch/arm64/Makefile            |  7 +++
>  tools/perf/arch/arm64/include/perf_regs.h | 88 +++++++++++++++++++++++++++++++
>  tools/perf/arch/arm64/util/dwarf-regs.c   | 81 ++++++++++++++++++++++++++++
>  tools/perf/arch/arm64/util/unwind.c       | 82 ++++++++++++++++++++++++++++
>  tools/perf/config/Makefile                |  8 ++-
>  12 files changed, 423 insertions(+), 9 deletions(-)
>  create mode 100644 arch/arm64/include/uapi/asm/perf_regs.h
>  create mode 100644 arch/arm64/kernel/perf_regs.c
>  create mode 100644 tools/perf/arch/arm64/Makefile
>  create mode 100644 tools/perf/arch/arm64/include/perf_regs.h
>  create mode 100644 tools/perf/arch/arm64/util/dwarf-regs.c
>  create mode 100644 tools/perf/arch/arm64/util/unwind.c

Arnaldo, AFAICS the main merging complexity will probably be on the 
perf tooling side, so if you are happy with these bits, mind picking 
them up into your tree?

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/3] ARM64: add perf support
  2013-12-17 10:45 ` Ingo Molnar
@ 2013-12-17 11:01   ` Will Deacon
  2013-12-17 11:08     ` Ingo Molnar
  0 siblings, 1 reply; 8+ messages in thread
From: Will Deacon @ 2013-12-17 11:01 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: jean.pihet@linaro.org, Arnaldo Carvalho de Melo,
	linux-kernel@vger.kernel.org, linaro-kernel@lists.linaro.org,
	Arnaldo, patches@linaro.org, Jiri Olsa

On Tue, Dec 17, 2013 at 10:45:34AM +0000, Ingo Molnar wrote:
> * jean.pihet@linaro.org <jean.pihet@linaro.org> wrote:
> > From: Jean Pihet <jean.pihet@linaro.org>
> > 
> > Add perf support for the AARCH64 architecture. This includes the
> > support for:
> > - AARCH64 perf registers definition and hooks,
> > - compat mode registers use, i.e. profiling a 32-bit binary on
> >    a 64-bit system,
> > - unwinding using the dwarf information from the .debug_frame
> >    section of the ELF binary; only in 64-bit mode,
> > - unwinding using the frame pointer information; in 64-bit and
> >    compat modes.
> > 
> > ToDo:
> > - add support for unwinding using the dwarf information in compat
> >    mode. This requires some changes to the libunwind code.
> > 
> > Tested on ARMv7 and ARMv8 platforms. The compat mode has been tested
> > on ARMv8 using statically built 32-bit binaries.
> > 
> > 
> > Jean Pihet (3):
> >   ARM64: perf: add support for perf registers API
> >   ARM64: perf: wire up perf_regs and unwind support
> >   ARM64: perf: add support for frame pointer unwinding in compat mode
> > 
> >  arch/arm64/Kconfig                        |  2 +
> >  arch/arm64/include/asm/ptrace.h           |  1 +
> >  arch/arm64/include/uapi/asm/Kbuild        |  1 +
> >  arch/arm64/include/uapi/asm/perf_regs.h   | 40 ++++++++++++++
> >  arch/arm64/kernel/Makefile                |  1 +
> >  arch/arm64/kernel/perf_event.c            | 75 +++++++++++++++++++++++---
> >  arch/arm64/kernel/perf_regs.c             | 46 ++++++++++++++++
> >  tools/perf/arch/arm64/Makefile            |  7 +++
> >  tools/perf/arch/arm64/include/perf_regs.h | 88 +++++++++++++++++++++++++++++++
> >  tools/perf/arch/arm64/util/dwarf-regs.c   | 81 ++++++++++++++++++++++++++++
> >  tools/perf/arch/arm64/util/unwind.c       | 82 ++++++++++++++++++++++++++++
> >  tools/perf/config/Makefile                |  8 ++-
> >  12 files changed, 423 insertions(+), 9 deletions(-)
> >  create mode 100644 arch/arm64/include/uapi/asm/perf_regs.h
> >  create mode 100644 arch/arm64/kernel/perf_regs.c
> >  create mode 100644 tools/perf/arch/arm64/Makefile
> >  create mode 100644 tools/perf/arch/arm64/include/perf_regs.h
> >  create mode 100644 tools/perf/arch/arm64/util/dwarf-regs.c
> >  create mode 100644 tools/perf/arch/arm64/util/unwind.c
> 
> Arnaldo, AFAICS the main merging complexity will probably be on the 
> perf tooling side, so if you are happy with these bits, mind picking 
> them up into your tree?

Hold your horses! I've got a few review comments on the series...

Will

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/3] ARM64: add perf support
  2013-12-17 11:01   ` Will Deacon
@ 2013-12-17 11:08     ` Ingo Molnar
  2013-12-30 16:28       ` Jean Pihet
  0 siblings, 1 reply; 8+ messages in thread
From: Ingo Molnar @ 2013-12-17 11:08 UTC (permalink / raw)
  To: Will Deacon
  Cc: jean.pihet@linaro.org, Arnaldo Carvalho de Melo,
	linux-kernel@vger.kernel.org, linaro-kernel@lists.linaro.org,
	Arnaldo, patches@linaro.org, Jiri Olsa


* Will Deacon <will.deacon@arm.com> wrote:

> On Tue, Dec 17, 2013 at 10:45:34AM +0000, Ingo Molnar wrote:
> > * jean.pihet@linaro.org <jean.pihet@linaro.org> wrote:
> > > From: Jean Pihet <jean.pihet@linaro.org>
> > > 
> > > Add perf support for the AARCH64 architecture. This includes the
> > > support for:
> > > - AARCH64 perf registers definition and hooks,
> > > - compat mode registers use, i.e. profiling a 32-bit binary on
> > >    a 64-bit system,
> > > - unwinding using the dwarf information from the .debug_frame
> > >    section of the ELF binary; only in 64-bit mode,
> > > - unwinding using the frame pointer information; in 64-bit and
> > >    compat modes.
> > > 
> > > ToDo:
> > > - add support for unwinding using the dwarf information in compat
> > >    mode. This requires some changes to the libunwind code.
> > > 
> > > Tested on ARMv7 and ARMv8 platforms. The compat mode has been tested
> > > on ARMv8 using statically built 32-bit binaries.
> > > 
> > > 
> > > Jean Pihet (3):
> > >   ARM64: perf: add support for perf registers API
> > >   ARM64: perf: wire up perf_regs and unwind support
> > >   ARM64: perf: add support for frame pointer unwinding in compat mode
> > > 
> > >  arch/arm64/Kconfig                        |  2 +
> > >  arch/arm64/include/asm/ptrace.h           |  1 +
> > >  arch/arm64/include/uapi/asm/Kbuild        |  1 +
> > >  arch/arm64/include/uapi/asm/perf_regs.h   | 40 ++++++++++++++
> > >  arch/arm64/kernel/Makefile                |  1 +
> > >  arch/arm64/kernel/perf_event.c            | 75 +++++++++++++++++++++++---
> > >  arch/arm64/kernel/perf_regs.c             | 46 ++++++++++++++++
> > >  tools/perf/arch/arm64/Makefile            |  7 +++
> > >  tools/perf/arch/arm64/include/perf_regs.h | 88 +++++++++++++++++++++++++++++++
> > >  tools/perf/arch/arm64/util/dwarf-regs.c   | 81 ++++++++++++++++++++++++++++
> > >  tools/perf/arch/arm64/util/unwind.c       | 82 ++++++++++++++++++++++++++++
> > >  tools/perf/config/Makefile                |  8 ++-
> > >  12 files changed, 423 insertions(+), 9 deletions(-)
> > >  create mode 100644 arch/arm64/include/uapi/asm/perf_regs.h
> > >  create mode 100644 arch/arm64/kernel/perf_regs.c
> > >  create mode 100644 tools/perf/arch/arm64/Makefile
> > >  create mode 100644 tools/perf/arch/arm64/include/perf_regs.h
> > >  create mode 100644 tools/perf/arch/arm64/util/dwarf-regs.c
> > >  create mode 100644 tools/perf/arch/arm64/util/unwind.c
> > 
> > Arnaldo, AFAICS the main merging complexity will probably be on 
> > the perf tooling side, so if you are happy with these bits, mind 
> > picking them up into your tree?
> 
> Hold your horses! I've got a few review comments on the series...

Sure :-)

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/3] ARM64: add perf support
  2013-12-17 11:08     ` Ingo Molnar
@ 2013-12-30 16:28       ` Jean Pihet
  0 siblings, 0 replies; 8+ messages in thread
From: Jean Pihet @ 2013-12-30 16:28 UTC (permalink / raw)
  To: Ingo Molnar, Will Deacon
  Cc: Arnaldo Carvalho de Melo, linux-kernel@vger.kernel.org,
	linaro-kernel@lists.linaro.org, Arnaldo, patches@linaro.org,
	Jiri Olsa

Hi Will, Ingo,

The series has been updated after the comments and re-submitted.

Thanks!
Jean

On 17 December 2013 12:08, Ingo Molnar <mingo@kernel.org> wrote:
>
> * Will Deacon <will.deacon@arm.com> wrote:
>
>> On Tue, Dec 17, 2013 at 10:45:34AM +0000, Ingo Molnar wrote:
>> > * jean.pihet@linaro.org <jean.pihet@linaro.org> wrote:
>> > > From: Jean Pihet <jean.pihet@linaro.org>
>> > >
>> > > Add perf support for the AARCH64 architecture. This includes the
>> > > support for:
>> > > - AARCH64 perf registers definition and hooks,
>> > > - compat mode registers use, i.e. profiling a 32-bit binary on
>> > >    a 64-bit system,
>> > > - unwinding using the dwarf information from the .debug_frame
>> > >    section of the ELF binary; only in 64-bit mode,
>> > > - unwinding using the frame pointer information; in 64-bit and
>> > >    compat modes.
>> > >
>> > > ToDo:
>> > > - add support for unwinding using the dwarf information in compat
>> > >    mode. This requires some changes to the libunwind code.
>> > >
>> > > Tested on ARMv7 and ARMv8 platforms. The compat mode has been tested
>> > > on ARMv8 using statically built 32-bit binaries.
>> > >
>> > >
>> > > Jean Pihet (3):
>> > >   ARM64: perf: add support for perf registers API
>> > >   ARM64: perf: wire up perf_regs and unwind support
>> > >   ARM64: perf: add support for frame pointer unwinding in compat mode
>> > >
>> > >  arch/arm64/Kconfig                        |  2 +
>> > >  arch/arm64/include/asm/ptrace.h           |  1 +
>> > >  arch/arm64/include/uapi/asm/Kbuild        |  1 +
>> > >  arch/arm64/include/uapi/asm/perf_regs.h   | 40 ++++++++++++++
>> > >  arch/arm64/kernel/Makefile                |  1 +
>> > >  arch/arm64/kernel/perf_event.c            | 75 +++++++++++++++++++++++---
>> > >  arch/arm64/kernel/perf_regs.c             | 46 ++++++++++++++++
>> > >  tools/perf/arch/arm64/Makefile            |  7 +++
>> > >  tools/perf/arch/arm64/include/perf_regs.h | 88 +++++++++++++++++++++++++++++++
>> > >  tools/perf/arch/arm64/util/dwarf-regs.c   | 81 ++++++++++++++++++++++++++++
>> > >  tools/perf/arch/arm64/util/unwind.c       | 82 ++++++++++++++++++++++++++++
>> > >  tools/perf/config/Makefile                |  8 ++-
>> > >  12 files changed, 423 insertions(+), 9 deletions(-)
>> > >  create mode 100644 arch/arm64/include/uapi/asm/perf_regs.h
>> > >  create mode 100644 arch/arm64/kernel/perf_regs.c
>> > >  create mode 100644 tools/perf/arch/arm64/Makefile
>> > >  create mode 100644 tools/perf/arch/arm64/include/perf_regs.h
>> > >  create mode 100644 tools/perf/arch/arm64/util/dwarf-regs.c
>> > >  create mode 100644 tools/perf/arch/arm64/util/unwind.c
>> >
>> > Arnaldo, AFAICS the main merging complexity will probably be on
>> > the perf tooling side, so if you are happy with these bits, mind
>> > picking them up into your tree?
>>
>> Hold your horses! I've got a few review comments on the series...
>
> Sure :-)
>
> Thanks,
>
>         Ingo
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-12-30 16:28 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-16 16:49 [PATCH 0/3] ARM64: add perf support jean.pihet
2013-12-17 10:45 ` Ingo Molnar
2013-12-17 11:01   ` Will Deacon
2013-12-17 11:08     ` Ingo Molnar
2013-12-30 16:28       ` Jean Pihet
  -- strict thread matches above, loose matches on Subject: below --
2013-12-16 16:54 Jean Pihet
2013-12-16 17:32 ` Will Deacon
2013-12-16 17:42   ` Jean Pihet

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.