[RFC PATCH 1/1] powerpc/ftrace: Exclude real mode code from

Naveen N. Rao naveen.n.rao at linux.vnet.ibm.com
Thu Mar 8 05:37:07 AEDT 2018


Hi Steve,

Steven Rostedt wrote:
> On Wed,  7 Mar 2018 22:16:19 +0530
> "Naveen N. Rao" <naveen.n.rao at linux.vnet.ibm.com> wrote:
> 
>> We can't take a trap in most parts of real mode code. Instead of adding
>> the 'notrace' annotation to all C functions that can be invoked from
>> real mode, detect that we are in real mode on ftrace entry and return
>> back.
>> 
>> Signed-off-by: Naveen N. Rao <naveen.n.rao at linux.vnet.ibm.com>
>> ---
>> This RFC only handles -mprofile-kernel to demonstrate the approach being 
>> considered. We will need to handle other ftrace entry if we decide to 
>> continue down this path.
> 
> I do prefer this trade off.

Great, thanks!

> 
> 
>> diff --git a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
>> index 3f3e81852422..ecc0e8e38ead 100644
>> --- a/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
>> +++ b/arch/powerpc/kernel/trace/ftrace_64_mprofile.S
>> @@ -56,6 +56,21 @@ _GLOBAL(ftrace_caller)
>>  
>>  	/* Load special regs for save below */
>>  	mfmsr   r8
>> +
>> +	/* Only proceed if we are not in real mode and can take interrupts */
>> +	andi.	r9, r8, MSR_IR|MSR_DR|MSR_RI
>> +	cmpdi	r9, MSR_IR|MSR_DR|MSR_RI
>> +	beq	1f
> 
> OK, I assume this check and branch is negligible compared to the mfmsr
> call?

Yes, that's negligible.
Though, to be honest, I will have to introduce a 'mfmsr' for the older 
-pg variant. I still think that the improved reliability far outweighs 
the minor slowdown there.

- Naveen




More information about the Linuxppc-dev mailing list