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

2022-10-12 Thread Naveen N. Rao

Josh Poimboeuf wrote:

On Tue, Oct 11, 2022 at 01:20:02PM -0700, Josh Poimboeuf wrote:

On Mon, Oct 10, 2022 at 05:19:02PM +0530, Naveen N. Rao wrote:
> All the above changes are down to compiler optimizations and shuffling due
> to CONFIG_OBJTOOL being enabled and changing annotate_unreachable().
> 
> As such, for this series:

> Reviewed-by: Naveen N. Rao 
> Tested-by: Naveen N. Rao 
> 
> 
> Josh,

> Are you ok if this series is taken in through the powerpc tree?

Yes, it looks ok to me.  Let me run it through a round of testing.


The testing looked good, so:

  Acked-by: Josh Poimboeuf 


Thanks!

FYI: your previous reply (that you would be testing it) didn't hit my 
inbox and it doesn't seem to have hit the list either.



- Naveen


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

2022-10-12 Thread Josh Poimboeuf
On Tue, Oct 11, 2022 at 01:20:02PM -0700, Josh Poimboeuf wrote:
> On Mon, Oct 10, 2022 at 05:19:02PM +0530, Naveen N. Rao wrote:
> > All the above changes are down to compiler optimizations and shuffling due
> > to CONFIG_OBJTOOL being enabled and changing annotate_unreachable().
> > 
> > As such, for this series:
> > Reviewed-by: Naveen N. Rao 
> > Tested-by: Naveen N. Rao 
> > 
> > 
> > Josh,
> > Are you ok if this series is taken in through the powerpc tree?
> 
> Yes, it looks ok to me.  Let me run it through a round of testing.

The testing looked good, so:

  Acked-by: Josh Poimboeuf 

-- 
Josh


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

2022-10-10 Thread Naveen N. Rao

Sathvika Vasireddy wrote:

This patchset enables and implements objtool --mcount
option on powerpc. This applies atop powerpc/merge branch.

Changelog:


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. 


With changes to the two patches in this series that I have described, 
and with my patch to have ftrace ignore weak symbols (*) applied, I 
built a ppc64le config.


(*) 
http://lkml.kernel.org/r/20220809105425.424045-1-naveen.n@linux.vnet.ibm.com

I then used the below diff to disable objtool and to build with 
recordmcount:


diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 7e28a8fd4c24fa..81c9f895d69012 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -238,8 +238,6 @@ config PPC
   select HAVE_MOD_ARCH_SPECIFIC
   select HAVE_NMI if PERF_EVENTS || (PPC64 && 
PPC_BOOK3S)
   select HAVE_OPTPROBES
-   select HAVE_OBJTOOL if PPC32 || MPROFILE_KERNEL
-   select HAVE_OBJTOOL_MCOUNT  if HAVE_OBJTOOL
   select HAVE_PERF_EVENTS
   select HAVE_PERF_EVENTS_NMI if PPC64
   select HAVE_PERF_REGS

Comparing available_filter_functions across the two builds showed the 
below differences:
 $ diff ftrace_funcs_recordmcount_20221010.sort.out ftrace_funcs_objtool_20221010.sort.out 
 6799d6798

 < __dev_alloc_name
 6800a6800
 > dev_alloc_name_ns
 11680d11679
 < find_zone.isra.0
 22396a22396
 > ns_capable_common.part.0

All the above changes are down to compiler optimizations and shuffling 
due to CONFIG_OBJTOOL being enabled and changing annotate_unreachable().


As such, for this series:
Reviewed-by: Naveen N. Rao 
Tested-by: Naveen N. Rao 


Josh,
Are you ok if this series is taken in through the powerpc tree?


- Naveen


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

2022-10-02 Thread Sathvika Vasireddy
This patchset enables and implements objtool --mcount
option on powerpc. This applies atop powerpc/merge branch.

Changelog:


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 
before .
  - 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/cpu_setup_fsl_booke.S |   8 +-
 arch/powerpc/kernel/entry_32.S|   9 +-
 arch/powerpc/kernel/entry_64.S|   2 +
 arch/powerpc/kernel/exceptions-64s.S  |   7 +-
 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