Thread (23 messages) 23 messages, 4 authors, 2022-11-14

Re: [PATCH v5 00/16] objtool: Enable and implement --mcount option on powerpc

From: Christophe Leroy <hidden>
Date: 2022-11-02 12:44:11
Also in: lkml


Le 28/10/2022 à 16:33, Sathvika Vasireddy a écrit :
This patchset enables and implements objtool --mcount
option on powerpc. This applies atop powerpc/merge branch.

Changelog:

----
v5:

* Patch 02/16 - Add Reviewed-by tag from Christophe Leroy

* Patch 03/16 - Fix merge conflicts with latest powerpc/merge branch

* Patch 06/16 - Files arch/powerpc/kernel/cpu_setup_fsl_booke.S and
		arch/powerpc/kernel/head_fsl_booke.S are not present
		today. Removed annotations in those assembly files.
Those files have not disappeared but have been renamed. The changes 
should have followed automatically during a rebase. If not, please don't 
miss them:

Commit 3e7318584dfe ("powerpc: Remove CONFIG_PPC_FSL_BOOK3E")
   arch/powerpc/kernel/{cpu_setup_fsl_booke.S => cpu_setup_e500.S}

Commit dfc3095cec27 ("powerpc: Remove CONFIG_FSL_BOOKE")
   arch/powerpc/kernel/{head_fsl_booke.S => head_85xx.S}

* Patch 11/16 - Add Reviewed-by tag from Christophe Leroy
	      - Changed scripts/Makefile.lib file to make
	        CONFIG_HAVE_OBJTOOL_NOP_MCOUNT depend on
		CONFIG_FTRACE_MCOUNT_USE_OBJTOOL.

* Patch 12/16 - Add Reviewed-by tag from Christophe Leroy

* Patch 16/16 - Add Reviewed-by tag from Christophe Leroy

* For this series - Add Acked-by tag from Josh Poimboeuf
		  - Add Tested-by tag from Naveen N. Rao
		  - Add Reviewed-by tag from Naveen N. Rao
----
v4:

* Patch 11/16 - Introduce a new config option
                 CONFIG_HAVE_OBJTOOL_NOP_MCOUNT as a means for
                 architectures to enable nop'ing ftrace locations.

               - Remove Acked-by tag from Peter Zijlstra (Intel),
                 and Reviewed-by tag from Christophe Leroy.
                 [This is done because I reworked the patch to add
                 a new config option to objtool. Please let me know
                 if you want me to retain the tags. Thanks!]

* Patch 16/16 - Rework the patch to handle only 'bl' instruction
                 decoding.

----
v3:

* Patch 01/16 - Rework patch subject.
               - Rework changelog.
               - Add Reviewed-by tag from Christophe Leroy.

* Patch 02/16 - Rework changelog to update details based on feedback
                 from Nicholas Piggin and Michael Ellerman.
               - Use quotes instead of __stringify macro, based on
                 suggestion from Christophe Leroy.

* Patch 03/16 - Add Reviewed-by tag from Christophe Leroy.
               - Based on Christophe's suggestion, keep all <linux/...>
                 before <asm/...>.
               - Rework changelog.

* Patch 04/16 - Add Reviewed-by tag from Christophe Leroy.

* Patch 05/16 - Add Reviewed-by tag from Christophe Leroy.

* Patch 06/16 - No change.

* Patch 07/16 - Add Reviewed-by tag from Christophe Leroy.

* Patch 08/16 - Add Acked-by tag from Peter Zijlstra.

* Patch 09/16 - Add Acked-by tag from Peter Zijlstra.

* Patch 10/16 - Reorder local variable declarations to use reverse
                 xmas tree format.
               - Add Signed-off-by tag from Sathvika Vasireddy indicating
                 changes done.
               - Add Acked-by tag from Peter Zijlstra.

* Patch 11/16 - Update changelog to indicate that powerpc kernel does
                 not support nop'ed out ftrace locations.
               - Add Acked-by tag from Peter Zijlstra.
               - Add Reviewed-by tag from Christophe Leroy.

* Patch 12/16 - Per Christophe's comment, rework changelog.

* Patch 13/16 - Add Acked-by tag from Peter Zijlstra.
               - Add Reviewed-by tag from Christophe Leroy.

* Patch 14/16 - Simplify arch_ftrace_match() function, based on
                 Christophe's suggestion.
               - Add Reviewed-by tag from Christophe Leroy.

* Patch 15/16 - Include code from Christophe Leroy to use local vars for
                 type and imm, and to adapt len for prefixed
                 instructions.

* Patch 16/16 - Based on suggestion from Christophe Leroy, setup
                 immediate value calculation outside the check for
                 specific instruction under case 18.
               - Set instruction type to INSN_CALL for 'bla'
                 instruction as well.

----
v2:

* Change subject of patch 01/16
* As suggested by Christophe Leroy, add barrier_before_unreachable()
before __builtin_unreachable() to work around a gcc problem.
* Fix issues reported by Kernel Test Robot.
* Include suggestions from Christophe Leroy, and change commit
messages for patches 01/16, 02/16, 03/16, 05/16.

----

Christophe Leroy (4):
   objtool: Fix SEGFAULT
   objtool: Use target file endianness instead of a compiled constant
   objtool: Use target file class size instead of a compiled constant
   powerpc: Fix objtool unannotated intra-function call warnings on PPC32

Sathvika Vasireddy (12):
   powerpc: Fix __WARN_FLAGS() for use with Objtool
   powerpc: Override __ALIGN and __ALIGN_STR macros
   powerpc: Fix objtool unannotated intra-function call warnings
   powerpc: Curb objtool unannotated intra-function warnings
   powerpc: Skip objtool from running on drivers/crypto/vmx/aesp8-ppc.o
   powerpc: Skip objtool from running on VDSO files
   objtool: Add --mnop as an option to --mcount
   objtool: Read special sections with alts only when specific options are selected
   objtool: Use macros to define arch specific reloc types
   objtool: Add arch specific function arch_ftrace_match()
   objtool/powerpc: Enable objtool to be built on ppc
   objtool/powerpc: Add --mcount specific implementation

  Makefile                                      |   4 +-
  arch/powerpc/Kconfig                          |   2 +
  arch/powerpc/include/asm/asm.h                |   7 ++
  arch/powerpc/include/asm/bug.h                |   3 +-
  arch/powerpc/include/asm/linkage.h            |   3 +
  arch/powerpc/kernel/cpu_setup_6xx.S           |  26 +++--
  arch/powerpc/kernel/entry_32.S                |   9 +-
  arch/powerpc/kernel/entry_64.S                |   2 +
  arch/powerpc/kernel/exceptions-64s.S          |   4 +-
  arch/powerpc/kernel/head_40x.S                |   5 +-
  arch/powerpc/kernel/head_64.S                 |   7 +-
  arch/powerpc/kernel/head_8xx.S                |   5 +-
  arch/powerpc/kernel/head_book3s_32.S          |  29 +++--
  arch/powerpc/kernel/misc_64.S                 |   4 +-
  arch/powerpc/kernel/swsusp_32.S               |   5 +-
  arch/powerpc/kernel/vdso/Makefile             |   2 +
  arch/powerpc/kernel/vector.S                  |   4 +-
  arch/powerpc/kvm/book3s_hv_interrupts.S       |   4 +-
  arch/powerpc/kvm/book3s_hv_rmhandlers.S       |  25 +++--
  arch/powerpc/kvm/fpu.S                        |  17 ++-
  arch/powerpc/platforms/52xx/lite5200_sleep.S  |  15 ++-
  arch/x86/Kconfig                              |   1 +
  drivers/crypto/vmx/Makefile                   |   2 +
  kernel/trace/Kconfig                          |   7 ++
  scripts/Makefile.lib                          |   3 +
  tools/objtool/arch/powerpc/Build              |   2 +
  tools/objtool/arch/powerpc/decode.c           | 101 ++++++++++++++++++
  .../arch/powerpc/include/arch/cfi_regs.h      |  11 ++
  tools/objtool/arch/powerpc/include/arch/elf.h |  10 ++
  .../arch/powerpc/include/arch/special.h       |  21 ++++
  tools/objtool/arch/powerpc/special.c          |  19 ++++
  tools/objtool/arch/x86/decode.c               |   5 +
  tools/objtool/arch/x86/include/arch/elf.h     |   2 +
  .../arch/x86/include/arch/endianness.h        |   9 --
  tools/objtool/builtin-check.c                 |  14 +++
  tools/objtool/check.c                         |  53 ++++-----
  tools/objtool/elf.c                           |   8 +-
  tools/objtool/include/objtool/arch.h          |   2 +
  tools/objtool/include/objtool/builtin.h       |   1 +
  tools/objtool/include/objtool/elf.h           |   8 ++
  tools/objtool/include/objtool/endianness.h    |  32 +++---
  tools/objtool/orc_dump.c                      |  11 +-
  tools/objtool/orc_gen.c                       |   4 +-
  tools/objtool/special.c                       |   3 +-
  44 files changed, 408 insertions(+), 103 deletions(-)
  create mode 100644 arch/powerpc/include/asm/asm.h
  create mode 100644 tools/objtool/arch/powerpc/Build
  create mode 100644 tools/objtool/arch/powerpc/decode.c
  create mode 100644 tools/objtool/arch/powerpc/include/arch/cfi_regs.h
  create mode 100644 tools/objtool/arch/powerpc/include/arch/elf.h
  create mode 100644 tools/objtool/arch/powerpc/include/arch/special.h
  create mode 100644 tools/objtool/arch/powerpc/special.c
  delete mode 100644 tools/objtool/arch/x86/include/arch/endianness.h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help