Message ID | 482db382b611b0a97bb1d897b3b38cc083e10965.1498069502.git.naveen.n.rao@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
On Thu, 22 Jun 2017 00:08:42 +0530 "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> wrote: > We can't take traps with relocation off, so blacklist enter_rtas() and > rtas_return_loc(). However, instead of blacklisting all of enter_rtas(), > introduce a new symbol __enter_rtas from where on we can't take a trap > and blacklist that. > > Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> > --- > arch/powerpc/kernel/entry_64.S | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S > index d376f07153d7..49c35450f399 100644 > --- a/arch/powerpc/kernel/entry_64.S > +++ b/arch/powerpc/kernel/entry_64.S > @@ -1076,6 +1076,8 @@ _GLOBAL(enter_rtas) > rldicr r9,r9,MSR_SF_LG,(63-MSR_SF_LG) > ori r9,r9,MSR_IR|MSR_DR|MSR_FE0|MSR_FE1|MSR_FP|MSR_RI|MSR_LE > andc r6,r0,r9 > + > +__enter_rtas: > sync /* disable interrupts so SRR0/1 */ > mtmsrd r0 /* don't get trashed */ Along the lines of the system call patch... For consistency, could we put the __enter_rtas right after mtmsrd? And I wonder if we shoul come up with a common prefix or postfix naming convention for these such labels used to control probing? How do opal calls avoid tracing? Thanks, Nick
On 2017/06/22 01:48PM, Nicholas Piggin wrote: > On Thu, 22 Jun 2017 00:08:42 +0530 > "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com> wrote: > > > We can't take traps with relocation off, so blacklist enter_rtas() and > > rtas_return_loc(). However, instead of blacklisting all of enter_rtas(), > > introduce a new symbol __enter_rtas from where on we can't take a trap > > and blacklist that. > > > > Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> > > --- > > arch/powerpc/kernel/entry_64.S | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S > > index d376f07153d7..49c35450f399 100644 > > --- a/arch/powerpc/kernel/entry_64.S > > +++ b/arch/powerpc/kernel/entry_64.S > > @@ -1076,6 +1076,8 @@ _GLOBAL(enter_rtas) > > rldicr r9,r9,MSR_SF_LG,(63-MSR_SF_LG) > > ori r9,r9,MSR_IR|MSR_DR|MSR_FE0|MSR_FE1|MSR_FP|MSR_RI|MSR_LE > > andc r6,r0,r9 > > + > > +__enter_rtas: > > sync /* disable interrupts so SRR0/1 */ > > mtmsrd r0 /* don't get trashed */ > > Along the lines of the system call patch... For consistency, could we > put the __enter_rtas right after mtmsrd? And I wonder if we shoul Sure. > come up with a common prefix or postfix naming convention for these > such labels used to control probing? We could, but I am not sure it will help much. On the other hand, such symbols may make backtraces pretty distracting. I'm just using '__' as a prefix to make it less distracting, though it isn't all that great either. I'm clearly hopeless with names o_O The other option is to just blacklist entire functions, but we will then lose the ability to probe in many places where we may have wanted to. > > How do opal calls avoid tracing? It doesn't yet. I'm still going through the initial few symbols and identifying what needs blacklisting. Opal is further down. Thanks, Naveen
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S index d376f07153d7..49c35450f399 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S @@ -1076,6 +1076,8 @@ _GLOBAL(enter_rtas) rldicr r9,r9,MSR_SF_LG,(63-MSR_SF_LG) ori r9,r9,MSR_IR|MSR_DR|MSR_FE0|MSR_FE1|MSR_FP|MSR_RI|MSR_LE andc r6,r0,r9 + +__enter_rtas: sync /* disable interrupts so SRR0/1 */ mtmsrd r0 /* don't get trashed */ @@ -1112,6 +1114,8 @@ rtas_return_loc: mtspr SPRN_SRR1,r4 rfid b . /* prevent speculative execution */ +_ASM_NOKPROBE_SYMBOL(__enter_rtas) +_ASM_NOKPROBE_SYMBOL(rtas_return_loc) .align 3 1: .llong rtas_restore_regs
We can't take traps with relocation off, so blacklist enter_rtas() and rtas_return_loc(). However, instead of blacklisting all of enter_rtas(), introduce a new symbol __enter_rtas from where on we can't take a trap and blacklist that. Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> --- arch/powerpc/kernel/entry_64.S | 4 ++++ 1 file changed, 4 insertions(+)