[RFC PATCH 2/4] powerpc: kprobe: add arch specific blacklist
Naveen N. Rao
naveen.n.rao at linux.vnet.ibm.com
Fri Nov 18 22:22:16 AEDT 2016
On 2016/11/18 04:48PM, Michael Ellerman wrote:
> "Naveen N. Rao" <naveen.n.rao at linux.vnet.ibm.com> writes:
>
> > Add symbol to mark end of entry_*.S and use the same to blacklist all
> > addresses from kernel start (_stext) to entry code from kprobes. Much of
> > this code is early exception handling where we can't really take a trap.
>
> I'm not sure about this. entry_*.S is actually a bit of jumble,
> especially the 64bit version. I've been wanting to split it up for a
> long time.
Ok. Let me take a stab at that.
>
> It doesn't actually contain any early exception handling. It does
> contain the common syscall handler, and the exception return paths, some
> of which should be black listed. And lots of other junk.
>
> Also I'm not sure if it's guaranteed that there won't be other code
> between _stext and the end of entry, it's not handled explicitly in the
> linker script, it just tends to get linked early because it's in head-y.
I actually considered that. One of the issues in trying to get entry_*
linked in early has to do with the exception common handlers - they
start at 0x7000 or 0x8000 and are placed in .text *and* I think they
need to be within 64k from the exception vectors. As such, placing
entry_* in a separate section and linking it after HEAD_TEXT resulted in
moving down the common exception handlers.
Regardless of the kprobe blacklist, does it make sense to put the common
exception handlers into a separate section so as to separate them out
from the rest of the code?
>
> So I think it would be better if we had a clearer picture of exactly
> what in this file we want to blacklist.
Agreed. As a first step, I wanted to get a coarser blacklist in place
and fine tune it later. But, I can see why entry_* needs a smaller
blacklist. I'll get back on this.
- Naveen
More information about the Linuxppc-dev
mailing list