Re: [PATCH] kprobes: x86_64: blacklist non-attachable interrupt functions

From: Masami Hiramatsu
Date: Sun Dec 16 2018 - 11:07:42 EST


On Sat, 8 Dec 2018 08:09:22 +0100
Andrea Righi <righi.andrea@xxxxxxxxx> wrote:

> On Sat, Dec 08, 2018 at 12:48:59PM +0900, Masami Hiramatsu wrote:
> > On Fri, 7 Dec 2018 18:58:05 +0100
> > Andrea Righi <righi.andrea@xxxxxxxxx> wrote:
> >
> > > On Sat, Dec 08, 2018 at 01:01:20AM +0900, Masami Hiramatsu wrote:
> > > > Hi Andrea and Ingo,
> > > >
> > > > Here is the patch what I meant. I just ran it on qemu-x86, and seemed working.
> > > > After introducing this patch, I will start adding arch_populate_kprobe_blacklist()
> > > > to some arches.
> > > >
> > > > Thank you,
> > > >
> > > > [RFC] kprobes: x86/kprobes: Blacklist symbols in arch-defined prohibited area
> > > >
> > > > From: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
> > > >
> > > > Blacklist symbols in arch-defined probe-prohibited areas.
> > > > With this change, user can see all symbols which are prohibited
> > > > to probe in debugfs.
> > > >
> > > > All archtectures which have custom prohibit areas should define
> > > > its own arch_populate_kprobe_blacklist() function, but unless that,
> > > > all symbols marked __kprobes are blacklisted.
> > >
> > > What about iterating all symbols and use arch_within_kprobe_blacklist()
> > > to check if we need to blacklist them or not.
> >
> > Sorry, I don't want to iterate all ksyms since it may take a long time
> > (especially embedded small devices.)
> >
> > >
> > > In this way we don't have to introduce an
> > > arch_populate_kprobe_blacklist() for each architecture.
> >
> > Hmm, I had a same idea, but there are some arch which prohibit probing
> > extable entries (e.g. arm64.) For correctness of the blacklist, I think
> > it should be listed (not entire the function body).

Aah, my bad memory. I remember that the extable should not be in blacklist,
since it is a kind of "unsupported instruction to be probed" on some arch.
I'll move that in arch_prepare_kprobe() on arm64.

> > I also rather like to remove arch_within_kprobe_blacklist() instead.

Anyway, this is true. If I could make a complete list, I will remove
this function.

Thank you,

>
> OK. Thanks.
>
> -Andrea


--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>