All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
To: Christophe Leroy <christophe.leroy@csgroup.eu>,
	Jiri Kosina <jikos@kernel.org>,
	Joe Lawrence <joe.lawrence@redhat.com>,
	Josh Poimboeuf <jpoimboe@redhat.com>,
	Miroslav Benes <mbenes@suse.cz>, Ingo Molnar <mingo@redhat.com>,
	Petr Mladek <pmladek@suse.com>,
	Steven Rostedt <rostedt@goodmis.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	"live-patching@vger.kernel.org" <live-patching@vger.kernel.org>
Subject: Re: [PATCH v2 12/13] powerpc/ftrace: Prepare ftrace_64_mprofile.S for reuse by PPC32
Date: Mon, 14 Feb 2022 23:21:56 +0530	[thread overview]
Message-ID: <1644860537.hyunv1mld0.naveen@linux.ibm.com> (raw)
In-Reply-To: <82a732915dc71ee766e31809350939331944006d.1640017960.git.christophe.leroy@csgroup.eu>

Christophe Leroy wrote:
> PPC64 mprofile versions and PPC32 are very similar.
> 
> Modify PPC64 version so that if can be reused for PPC32.
> 
> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> ---
>  .../powerpc/kernel/trace/ftrace_64_mprofile.S | 73 +++++++++++++------
>  1 file changed, 51 insertions(+), 22 deletions(-)

While I agree that ppc32 and -mprofile-kernel ftrace code are very 
similar, I think this patch adds way too many #ifdefs. IMHO, this
makes the resultant code quite difficult to follow.


- Naveen

> 
> diff --git a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
> index 6071e0122797..56da60e98327 100644
> --- a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
> +++ b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
> @@ -34,13 +34,16 @@
>   */
>  _GLOBAL(ftrace_regs_caller)
>  	/* Save the original return address in A's stack frame */
> -	std	r0,LRSAVE(r1)
> +#ifdef CONFIG_MPROFILE_KERNEL
> +	PPC_STL	r0,LRSAVE(r1)
> +#endif
>  
>  	/* Create our stack frame + pt_regs */
> -	stdu	r1,-SWITCH_FRAME_SIZE(r1)
> +	PPC_STLU	r1,-SWITCH_FRAME_SIZE(r1)
>  
>  	/* Save all gprs to pt_regs */
>  	SAVE_GPR(0, r1)
> +#ifdef CONFIG_PPC64
>  	SAVE_GPRS(2, 11, r1)
>  
>  	/* Ok to continue? */
> @@ -49,10 +52,13 @@ _GLOBAL(ftrace_regs_caller)
>  	beq	ftrace_no_trace
>  
>  	SAVE_GPRS(12, 31, r1)
> +#else
> +	stmw	r2, GPR2(r1)
> +#endif
>  
>  	/* Save previous stack pointer (r1) */
>  	addi	r8, r1, SWITCH_FRAME_SIZE
> -	std	r8, GPR1(r1)
> +	PPC_STL	r8, GPR1(r1)
>  
>  	/* Load special regs for save below */
>  	mfmsr   r8
> @@ -63,10 +69,11 @@ _GLOBAL(ftrace_regs_caller)
>  	/* Get the _mcount() call site out of LR */
>  	mflr	r7
>  	/* Save it as pt_regs->nip */
> -	std     r7, _NIP(r1)
> +	PPC_STL	r7, _NIP(r1)
>  	/* Save the read LR in pt_regs->link */
> -	std     r0, _LINK(r1)
> +	PPC_STL	r0, _LINK(r1)
>  
> +#ifdef CONFIG_PPC64
>  	/* Save callee's TOC in the ABI compliant location */
>  	std	r2, 24(r1)
>  	ld	r2,PACATOC(r13)	/* get kernel TOC in r2 */
> @@ -74,8 +81,12 @@ _GLOBAL(ftrace_regs_caller)
>  	addis	r3,r2,function_trace_op@toc@ha
>  	addi	r3,r3,function_trace_op@toc@l
>  	ld	r5,0(r3)
> +#else
> +	lis	r3,function_trace_op@ha
> +	lwz	r5,function_trace_op@l(r3)
> +#endif
>  
> -#ifdef CONFIG_LIVEPATCH
> +#ifdef CONFIG_LIVEPATCH_64
>  	mr	r14,r7		/* remember old NIP */
>  #endif
>  	/* Calculate ip from nip-4 into r3 for call below */
> @@ -85,10 +96,10 @@ _GLOBAL(ftrace_regs_caller)
>  	mr	r4, r0
>  
>  	/* Save special regs */
> -	std     r8, _MSR(r1)
> -	std     r9, _CTR(r1)
> -	std     r10, _XER(r1)
> -	std     r11, _CCR(r1)
> +	PPC_STL	r8, _MSR(r1)
> +	PPC_STL	r9, _CTR(r1)
> +	PPC_STL	r10, _XER(r1)
> +	PPC_STL	r11, _CCR(r1)
>  
>  	/* Load &pt_regs in r6 for call below */
>  	addi    r6, r1 ,STACK_FRAME_OVERHEAD
> @@ -100,27 +111,32 @@ ftrace_regs_call:
>  	nop
>  
>  	/* Load ctr with the possibly modified NIP */
> -	ld	r3, _NIP(r1)
> +	PPC_LL	r3, _NIP(r1)
>  	mtctr	r3
> -#ifdef CONFIG_LIVEPATCH
> +#ifdef CONFIG_LIVEPATCH_64
>  	cmpd	r14, r3		/* has NIP been altered? */
>  #endif
>  
>  	/* Restore gprs */
> -	REST_GPR(0, r1)
> +#ifdef CONFIG_PPC64
>  	REST_GPRS(2, 31, r1)
> +#else
> +	lmw	r2, GPR2(r1)
> +#endif
>  
>  	/* Restore possibly modified LR */
> -	ld	r0, _LINK(r1)
> +	PPC_LL	r0, _LINK(r1)
>  	mtlr	r0
>  
> +#ifdef CONFIG_PPC64
>  	/* Restore callee's TOC */
>  	ld	r2, 24(r1)
> +#endif
>  
>  	/* Pop our stack frame */
>  	addi r1, r1, SWITCH_FRAME_SIZE
>  
> -#ifdef CONFIG_LIVEPATCH
> +#ifdef CONFIG_LIVEPATCH_64
>          /* Based on the cmpd above, if the NIP was altered handle livepatch */
>  	bne-	livepatch_handler
>  #endif
> @@ -129,6 +145,7 @@ ftrace_regs_call:
>  _GLOBAL(ftrace_stub)
>  	blr
>  
> +#ifdef CONFIG_PPC64
>  ftrace_no_trace:
>  	mflr	r3
>  	mtctr	r3
> @@ -136,25 +153,31 @@ ftrace_no_trace:
>  	addi	r1, r1, SWITCH_FRAME_SIZE
>  	mtlr	r0
>  	bctr
> +#endif
>  
>  _GLOBAL(ftrace_caller)
>  	/* Save the original return address in A's stack frame */
> -	std	r0, LRSAVE(r1)
> +#ifdef CONFIG_MPROFILE_KERNEL
> +	PPC_STL	r0, LRSAVE(r1)
> +#endif
>  
>  	/* Create our stack frame + pt_regs */
> -	stdu	r1, -SWITCH_FRAME_SIZE(r1)
> +	PPC_STLU	r1, -SWITCH_FRAME_SIZE(r1)
>  
>  	/* Save all gprs to pt_regs */
>  	SAVE_GPRS(3, 10, r1)
>  
> +#ifdef CONFIG_PPC64
>  	lbz	r3, PACA_FTRACE_ENABLED(r13)
>  	cmpdi	r3, 0
>  	beq	ftrace_no_trace
> +#endif
>  
>  	/* Get the _mcount() call site out of LR */
>  	mflr	r7
> -	std     r7, _NIP(r1)
> +	PPC_STL     r7, _NIP(r1)
>  
> +#ifdef CONFIG_PPC64
>  	/* Save callee's TOC in the ABI compliant location */
>  	std	r2, 24(r1)
>  	ld	r2, PACATOC(r13)	/* get kernel TOC in r2 */
> @@ -162,6 +185,10 @@ _GLOBAL(ftrace_caller)
>  	addis	r3, r2, function_trace_op@toc@ha
>  	addi	r3, r3, function_trace_op@toc@l
>  	ld	r5, 0(r3)
> +#else
> +	lis	r3,function_trace_op@ha
> +	lwz	r5,function_trace_op@l(r3)
> +#endif
>  
>  #ifdef CONFIG_LIVEPATCH_64
>  	SAVE_GPR(14, r1)
> @@ -171,7 +198,7 @@ _GLOBAL(ftrace_caller)
>  	subi    r3, r7, MCOUNT_INSN_SIZE
>  
>  	/* Put the original return address in r4 as parent_ip */
> -	std	r0, _LINK(r1)
> +	PPC_STL	r0, _LINK(r1)
>  	mr	r4, r0
>  
>  	/* Load &pt_regs in r6 for call below */
> @@ -183,7 +210,7 @@ ftrace_call:
>  	bl	ftrace_stub
>  	nop
>  
> -	ld	r3, _NIP(r1)
> +	PPC_LL	r3, _NIP(r1)
>  	mtctr	r3
>  #ifdef CONFIG_LIVEPATCH_64
>  	cmpd	r14, r3		/* has NIP been altered? */
> @@ -193,11 +220,13 @@ ftrace_call:
>  	/* Restore gprs */
>  	REST_GPRS(3, 10, r1)
>  
> +#ifdef CONFIG_PPC64
>  	/* Restore callee's TOC */
>  	ld	r2, 24(r1)
> +#endif
>  
>  	/* Restore possibly modified LR */
> -	ld	r0, _LINK(r1)
> +	PPC_LL	r0, _LINK(r1)
>  	mtlr	r0
>  
>  	/* Pop our stack frame */
> @@ -209,7 +238,7 @@ ftrace_call:
>  #endif
>  	bctr			/* jump after _mcount site */
>  
> -#ifdef CONFIG_LIVEPATCH
> +#ifdef CONFIG_LIVEPATCH_64
>  	/*
>  	 * This function runs in the mcount context, between two functions. As
>  	 * such it can only clobber registers which are volatile and used in
> -- 
> 2.33.1
> 

WARNING: multiple messages have this Message-ID (diff)
From: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
To: Christophe Leroy <christophe.leroy@csgroup.eu>,
	Jiri Kosina <jikos@kernel.org>,
	Joe Lawrence <joe.lawrence@redhat.com>,
	Josh Poimboeuf <jpoimboe@redhat.com>,
	Miroslav Benes <mbenes@suse.cz>, Ingo Molnar <mingo@redhat.com>,
	Petr Mladek <pmladek@suse.com>,
	Steven Rostedt <rostedt@goodmis.org>
Cc: "live-patching@vger.kernel.org" <live-patching@vger.kernel.org>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 12/13] powerpc/ftrace: Prepare ftrace_64_mprofile.S for reuse by PPC32
Date: Mon, 14 Feb 2022 23:21:56 +0530	[thread overview]
Message-ID: <1644860537.hyunv1mld0.naveen@linux.ibm.com> (raw)
In-Reply-To: <82a732915dc71ee766e31809350939331944006d.1640017960.git.christophe.leroy@csgroup.eu>

Christophe Leroy wrote:
> PPC64 mprofile versions and PPC32 are very similar.
> 
> Modify PPC64 version so that if can be reused for PPC32.
> 
> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
> ---
>  .../powerpc/kernel/trace/ftrace_64_mprofile.S | 73 +++++++++++++------
>  1 file changed, 51 insertions(+), 22 deletions(-)

While I agree that ppc32 and -mprofile-kernel ftrace code are very 
similar, I think this patch adds way too many #ifdefs. IMHO, this
makes the resultant code quite difficult to follow.


- Naveen

> 
> diff --git a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
> index 6071e0122797..56da60e98327 100644
> --- a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
> +++ b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
> @@ -34,13 +34,16 @@
>   */
>  _GLOBAL(ftrace_regs_caller)
>  	/* Save the original return address in A's stack frame */
> -	std	r0,LRSAVE(r1)
> +#ifdef CONFIG_MPROFILE_KERNEL
> +	PPC_STL	r0,LRSAVE(r1)
> +#endif
>  
>  	/* Create our stack frame + pt_regs */
> -	stdu	r1,-SWITCH_FRAME_SIZE(r1)
> +	PPC_STLU	r1,-SWITCH_FRAME_SIZE(r1)
>  
>  	/* Save all gprs to pt_regs */
>  	SAVE_GPR(0, r1)
> +#ifdef CONFIG_PPC64
>  	SAVE_GPRS(2, 11, r1)
>  
>  	/* Ok to continue? */
> @@ -49,10 +52,13 @@ _GLOBAL(ftrace_regs_caller)
>  	beq	ftrace_no_trace
>  
>  	SAVE_GPRS(12, 31, r1)
> +#else
> +	stmw	r2, GPR2(r1)
> +#endif
>  
>  	/* Save previous stack pointer (r1) */
>  	addi	r8, r1, SWITCH_FRAME_SIZE
> -	std	r8, GPR1(r1)
> +	PPC_STL	r8, GPR1(r1)
>  
>  	/* Load special regs for save below */
>  	mfmsr   r8
> @@ -63,10 +69,11 @@ _GLOBAL(ftrace_regs_caller)
>  	/* Get the _mcount() call site out of LR */
>  	mflr	r7
>  	/* Save it as pt_regs->nip */
> -	std     r7, _NIP(r1)
> +	PPC_STL	r7, _NIP(r1)
>  	/* Save the read LR in pt_regs->link */
> -	std     r0, _LINK(r1)
> +	PPC_STL	r0, _LINK(r1)
>  
> +#ifdef CONFIG_PPC64
>  	/* Save callee's TOC in the ABI compliant location */
>  	std	r2, 24(r1)
>  	ld	r2,PACATOC(r13)	/* get kernel TOC in r2 */
> @@ -74,8 +81,12 @@ _GLOBAL(ftrace_regs_caller)
>  	addis	r3,r2,function_trace_op@toc@ha
>  	addi	r3,r3,function_trace_op@toc@l
>  	ld	r5,0(r3)
> +#else
> +	lis	r3,function_trace_op@ha
> +	lwz	r5,function_trace_op@l(r3)
> +#endif
>  
> -#ifdef CONFIG_LIVEPATCH
> +#ifdef CONFIG_LIVEPATCH_64
>  	mr	r14,r7		/* remember old NIP */
>  #endif
>  	/* Calculate ip from nip-4 into r3 for call below */
> @@ -85,10 +96,10 @@ _GLOBAL(ftrace_regs_caller)
>  	mr	r4, r0
>  
>  	/* Save special regs */
> -	std     r8, _MSR(r1)
> -	std     r9, _CTR(r1)
> -	std     r10, _XER(r1)
> -	std     r11, _CCR(r1)
> +	PPC_STL	r8, _MSR(r1)
> +	PPC_STL	r9, _CTR(r1)
> +	PPC_STL	r10, _XER(r1)
> +	PPC_STL	r11, _CCR(r1)
>  
>  	/* Load &pt_regs in r6 for call below */
>  	addi    r6, r1 ,STACK_FRAME_OVERHEAD
> @@ -100,27 +111,32 @@ ftrace_regs_call:
>  	nop
>  
>  	/* Load ctr with the possibly modified NIP */
> -	ld	r3, _NIP(r1)
> +	PPC_LL	r3, _NIP(r1)
>  	mtctr	r3
> -#ifdef CONFIG_LIVEPATCH
> +#ifdef CONFIG_LIVEPATCH_64
>  	cmpd	r14, r3		/* has NIP been altered? */
>  #endif
>  
>  	/* Restore gprs */
> -	REST_GPR(0, r1)
> +#ifdef CONFIG_PPC64
>  	REST_GPRS(2, 31, r1)
> +#else
> +	lmw	r2, GPR2(r1)
> +#endif
>  
>  	/* Restore possibly modified LR */
> -	ld	r0, _LINK(r1)
> +	PPC_LL	r0, _LINK(r1)
>  	mtlr	r0
>  
> +#ifdef CONFIG_PPC64
>  	/* Restore callee's TOC */
>  	ld	r2, 24(r1)
> +#endif
>  
>  	/* Pop our stack frame */
>  	addi r1, r1, SWITCH_FRAME_SIZE
>  
> -#ifdef CONFIG_LIVEPATCH
> +#ifdef CONFIG_LIVEPATCH_64
>          /* Based on the cmpd above, if the NIP was altered handle livepatch */
>  	bne-	livepatch_handler
>  #endif
> @@ -129,6 +145,7 @@ ftrace_regs_call:
>  _GLOBAL(ftrace_stub)
>  	blr
>  
> +#ifdef CONFIG_PPC64
>  ftrace_no_trace:
>  	mflr	r3
>  	mtctr	r3
> @@ -136,25 +153,31 @@ ftrace_no_trace:
>  	addi	r1, r1, SWITCH_FRAME_SIZE
>  	mtlr	r0
>  	bctr
> +#endif
>  
>  _GLOBAL(ftrace_caller)
>  	/* Save the original return address in A's stack frame */
> -	std	r0, LRSAVE(r1)
> +#ifdef CONFIG_MPROFILE_KERNEL
> +	PPC_STL	r0, LRSAVE(r1)
> +#endif
>  
>  	/* Create our stack frame + pt_regs */
> -	stdu	r1, -SWITCH_FRAME_SIZE(r1)
> +	PPC_STLU	r1, -SWITCH_FRAME_SIZE(r1)
>  
>  	/* Save all gprs to pt_regs */
>  	SAVE_GPRS(3, 10, r1)
>  
> +#ifdef CONFIG_PPC64
>  	lbz	r3, PACA_FTRACE_ENABLED(r13)
>  	cmpdi	r3, 0
>  	beq	ftrace_no_trace
> +#endif
>  
>  	/* Get the _mcount() call site out of LR */
>  	mflr	r7
> -	std     r7, _NIP(r1)
> +	PPC_STL     r7, _NIP(r1)
>  
> +#ifdef CONFIG_PPC64
>  	/* Save callee's TOC in the ABI compliant location */
>  	std	r2, 24(r1)
>  	ld	r2, PACATOC(r13)	/* get kernel TOC in r2 */
> @@ -162,6 +185,10 @@ _GLOBAL(ftrace_caller)
>  	addis	r3, r2, function_trace_op@toc@ha
>  	addi	r3, r3, function_trace_op@toc@l
>  	ld	r5, 0(r3)
> +#else
> +	lis	r3,function_trace_op@ha
> +	lwz	r5,function_trace_op@l(r3)
> +#endif
>  
>  #ifdef CONFIG_LIVEPATCH_64
>  	SAVE_GPR(14, r1)
> @@ -171,7 +198,7 @@ _GLOBAL(ftrace_caller)
>  	subi    r3, r7, MCOUNT_INSN_SIZE
>  
>  	/* Put the original return address in r4 as parent_ip */
> -	std	r0, _LINK(r1)
> +	PPC_STL	r0, _LINK(r1)
>  	mr	r4, r0
>  
>  	/* Load &pt_regs in r6 for call below */
> @@ -183,7 +210,7 @@ ftrace_call:
>  	bl	ftrace_stub
>  	nop
>  
> -	ld	r3, _NIP(r1)
> +	PPC_LL	r3, _NIP(r1)
>  	mtctr	r3
>  #ifdef CONFIG_LIVEPATCH_64
>  	cmpd	r14, r3		/* has NIP been altered? */
> @@ -193,11 +220,13 @@ ftrace_call:
>  	/* Restore gprs */
>  	REST_GPRS(3, 10, r1)
>  
> +#ifdef CONFIG_PPC64
>  	/* Restore callee's TOC */
>  	ld	r2, 24(r1)
> +#endif
>  
>  	/* Restore possibly modified LR */
> -	ld	r0, _LINK(r1)
> +	PPC_LL	r0, _LINK(r1)
>  	mtlr	r0
>  
>  	/* Pop our stack frame */
> @@ -209,7 +238,7 @@ ftrace_call:
>  #endif
>  	bctr			/* jump after _mcount site */
>  
> -#ifdef CONFIG_LIVEPATCH
> +#ifdef CONFIG_LIVEPATCH_64
>  	/*
>  	 * This function runs in the mcount context, between two functions. As
>  	 * such it can only clobber registers which are volatile and used in
> -- 
> 2.33.1
> 

  reply	other threads:[~2022-02-14 17:52 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-20 16:37 [PATCH v2 00/13] Implement livepatch on PPC32 and more Christophe Leroy
2021-12-20 16:37 ` Christophe Leroy
2021-12-20 16:38 ` [PATCH v2 01/13] livepatch: Fix build failure on 32 bits processors Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2021-12-22 13:47   ` Miroslav Benes
2021-12-22 13:47     ` Miroslav Benes
2022-01-04 19:35   ` Joe Lawrence
2022-01-04 19:35     ` Joe Lawrence
2021-12-20 16:38 ` [PATCH v2 02/13] tracing: Fix selftest config check for function graph start up test Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2022-02-24 13:43   ` Christophe Leroy
2022-02-24 13:43     ` Christophe Leroy
2022-02-24 14:53     ` Steven Rostedt
2022-02-24 14:53       ` Steven Rostedt
2022-02-24 15:13       ` Christophe Leroy
2022-02-24 15:13         ` Christophe Leroy
2022-02-24 15:17         ` Steven Rostedt
2022-02-24 15:17           ` Steven Rostedt
2022-02-25  2:42       ` Michael Ellerman
2022-02-25  2:42         ` Michael Ellerman
2021-12-20 16:38 ` [PATCH v2 03/13] powerpc/module_32: Fix livepatching for RO modules Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2022-01-04 19:44   ` Joe Lawrence
2022-01-04 19:44     ` Joe Lawrence
2021-12-20 16:38 ` [PATCH v2 04/13] powerpc/ftrace: Add support for livepatch to PPC32 Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2021-12-22 14:00   ` Miroslav Benes
2021-12-22 14:00     ` Miroslav Benes
2021-12-20 16:38 ` [PATCH v2 05/13] powerpc/ftrace: Don't save again LR in ftrace_regs_caller() on PPC32 Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2021-12-20 16:38 ` [PATCH v2 06/13] powerpc/ftrace: Simplify PPC32's return_to_handler() Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2021-12-20 16:38 ` [PATCH v2 07/13] powerpc/ftrace: Prepare PPC32's ftrace_caller() for CONFIG_DYNAMIC_FTRACE_WITH_ARGS Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2021-12-20 16:38 ` [PATCH v2 08/13] powerpc/ftrace: Prepare PPC64's " Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2022-02-14 15:19   ` Naveen N. Rao
2022-02-14 15:19     ` Naveen N. Rao
2021-12-20 16:38 ` [PATCH v2 09/13] powerpc/ftrace: Implement CONFIG_DYNAMIC_FTRACE_WITH_ARGS Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2021-12-22 14:19   ` Miroslav Benes
2021-12-22 14:19     ` Miroslav Benes
2021-12-22 14:19     ` Miroslav Benes
2022-02-14 15:25   ` Naveen N. Rao
2022-02-14 15:25     ` Naveen N. Rao
2022-02-15  8:00     ` Christophe Leroy
2022-02-15  8:00       ` Christophe Leroy
2022-02-15 11:05       ` Michael Ellerman
2022-02-15 11:05         ` Michael Ellerman
2022-02-15 13:36         ` Naveen N. Rao
2022-02-15 13:36           ` Naveen N. Rao
2022-02-15 14:28           ` Christophe Leroy
2022-02-15 14:28             ` Christophe Leroy
2022-02-15 14:51             ` Christophe Leroy
2022-02-15 14:51               ` Christophe Leroy
2022-02-15 16:25               ` Naveen N. Rao
2022-02-15 16:25                 ` Naveen N. Rao
2022-02-16 13:04                 ` Heiko Carstens
2022-02-16 13:04                   ` Heiko Carstens
2022-02-16 13:27                   ` Sven Schnelle
2022-02-16 13:27                     ` Sven Schnelle
2022-02-15 14:38           ` Steven Rostedt
2022-02-15 14:38             ` Steven Rostedt
2022-02-15 16:26             ` Naveen N. Rao
2022-02-15 16:26               ` Naveen N. Rao
2021-12-20 16:38 ` [PATCH v2 10/13] powerpc/ftrace: Refactor ftrace_{en/dis}able_ftrace_graph_caller Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2021-12-20 16:38 ` [PATCH v2 11/13] powerpc/ftrace: directly call of function graph tracer by ftrace caller Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2022-02-14 17:24   ` Naveen N. Rao
2022-02-14 17:24     ` Naveen N. Rao
2022-02-14 19:03     ` Steven Rostedt
2022-02-14 19:03       ` Steven Rostedt
2021-12-20 16:38 ` [PATCH v2 12/13] powerpc/ftrace: Prepare ftrace_64_mprofile.S for reuse by PPC32 Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2022-02-14 17:51   ` Naveen N. Rao [this message]
2022-02-14 17:51     ` Naveen N. Rao
2022-02-15  8:33     ` Christophe Leroy
2022-02-15  8:33       ` Christophe Leroy
2021-12-20 16:38 ` [PATCH v2 13/13] powerpc/ftrace: Remove ftrace_32.S Christophe Leroy
2021-12-20 16:38   ` Christophe Leroy
2022-02-11  7:41   ` [PATCH] Fixup for next-test 3a1a8f078670 ("powerpc/ftrace: Remove ftrace_32.S") Christophe Leroy
2022-02-11  7:41     ` Christophe Leroy
2022-02-16 12:26 ` [PATCH v2 00/13] Implement livepatch on PPC32 and more Michael Ellerman

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=1644860537.hyunv1mld0.naveen@linux.ibm.com \
    --to=naveen.n.rao@linux.vnet.ibm.com \
    --cc=christophe.leroy@csgroup.eu \
    --cc=jikos@kernel.org \
    --cc=joe.lawrence@redhat.com \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=live-patching@vger.kernel.org \
    --cc=mbenes@suse.cz \
    --cc=mingo@redhat.com \
    --cc=pmladek@suse.com \
    --cc=rostedt@goodmis.org \
    /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.