Re: Detecting kprobes generated code addresses
On Sun, 25 Dec 2016 15:16:00 +0900 Masami Hiramatsuwrote: > On Sun, 25 Dec 2016 12:13:20 +0900 > Masami Hiramatsu wrote: > > > On Thu, 22 Dec 2016 00:42:19 -0600 > > Josh Poimboeuf wrote: > > > > > Hi Masami, > > > > > > I would like to make __kernel_text_address() be able to detect whether > > > an address belongs to code which was generated by kprobes. As far as I > > > can tell, that information seems to be in the 'pages' lists of > > > kprobe_insn_slots and kprobe_optinsn_slots. But they seem to be > > > protected by mutexes. > > > > Right. It is currently under mutex because it may kick > > page allocation. But I think it is easy to fix that :) > > Hmm, IMHO, it seems that we should add a dummy (auto-generated) > symbol for optprobe trampoline code to kallsyms so that > __kernel_text_address() automatically returns true on it. Sorry, I reconsidered this idea and conclude it was overkill. As same as ftrace does, maybe it is enough to add a check routine to __kernel_text_address(). Thanks, -- Masami Hiramatsu
Re: Detecting kprobes generated code addresses
On Sun, 25 Dec 2016 15:16:00 +0900 Masami Hiramatsu wrote: > On Sun, 25 Dec 2016 12:13:20 +0900 > Masami Hiramatsu wrote: > > > On Thu, 22 Dec 2016 00:42:19 -0600 > > Josh Poimboeuf wrote: > > > > > Hi Masami, > > > > > > I would like to make __kernel_text_address() be able to detect whether > > > an address belongs to code which was generated by kprobes. As far as I > > > can tell, that information seems to be in the 'pages' lists of > > > kprobe_insn_slots and kprobe_optinsn_slots. But they seem to be > > > protected by mutexes. > > > > Right. It is currently under mutex because it may kick > > page allocation. But I think it is easy to fix that :) > > Hmm, IMHO, it seems that we should add a dummy (auto-generated) > symbol for optprobe trampoline code to kallsyms so that > __kernel_text_address() automatically returns true on it. Sorry, I reconsidered this idea and conclude it was overkill. As same as ftrace does, maybe it is enough to add a check routine to __kernel_text_address(). Thanks, -- Masami Hiramatsu
Re: Detecting kprobes generated code addresses
On Sun, 25 Dec 2016 12:13:20 +0900 Masami Hiramatsuwrote: > On Thu, 22 Dec 2016 00:42:19 -0600 > Josh Poimboeuf wrote: > > > Hi Masami, > > > > I would like to make __kernel_text_address() be able to detect whether > > an address belongs to code which was generated by kprobes. As far as I > > can tell, that information seems to be in the 'pages' lists of > > kprobe_insn_slots and kprobe_optinsn_slots. But they seem to be > > protected by mutexes. > > Right. It is currently under mutex because it may kick > page allocation. But I think it is easy to fix that :) Hmm, IMHO, it seems that we should add a dummy (auto-generated) symbol for optprobe trampoline code to kallsyms so that __kernel_text_address() automatically returns true on it. Thank you, -- Masami Hiramatsu
Re: Detecting kprobes generated code addresses
On Sun, 25 Dec 2016 12:13:20 +0900 Masami Hiramatsu wrote: > On Thu, 22 Dec 2016 00:42:19 -0600 > Josh Poimboeuf wrote: > > > Hi Masami, > > > > I would like to make __kernel_text_address() be able to detect whether > > an address belongs to code which was generated by kprobes. As far as I > > can tell, that information seems to be in the 'pages' lists of > > kprobe_insn_slots and kprobe_optinsn_slots. But they seem to be > > protected by mutexes. > > Right. It is currently under mutex because it may kick > page allocation. But I think it is easy to fix that :) Hmm, IMHO, it seems that we should add a dummy (auto-generated) symbol for optprobe trampoline code to kallsyms so that __kernel_text_address() automatically returns true on it. Thank you, -- Masami Hiramatsu
Re: Detecting kprobes generated code addresses
On Thu, 22 Dec 2016 00:42:19 -0600 Josh Poimboeufwrote: > Hi Masami, > > I would like to make __kernel_text_address() be able to detect whether > an address belongs to code which was generated by kprobes. As far as I > can tell, that information seems to be in the 'pages' lists of > kprobe_insn_slots and kprobe_optinsn_slots. But they seem to be > protected by mutexes. Right. It is currently under mutex because it may kick page allocation. But I think it is easy to fix that :) > Do you know if there's a sleep-free way to access > that information? Hmm, no, I couldn't find that yet. Thanks, -- Masami Hiramatsu
Re: Detecting kprobes generated code addresses
On Thu, 22 Dec 2016 00:42:19 -0600 Josh Poimboeuf wrote: > Hi Masami, > > I would like to make __kernel_text_address() be able to detect whether > an address belongs to code which was generated by kprobes. As far as I > can tell, that information seems to be in the 'pages' lists of > kprobe_insn_slots and kprobe_optinsn_slots. But they seem to be > protected by mutexes. Right. It is currently under mutex because it may kick page allocation. But I think it is easy to fix that :) > Do you know if there's a sleep-free way to access > that information? Hmm, no, I couldn't find that yet. Thanks, -- Masami Hiramatsu
Detecting kprobes generated code addresses
Hi Masami, I would like to make __kernel_text_address() be able to detect whether an address belongs to code which was generated by kprobes. As far as I can tell, that information seems to be in the 'pages' lists of kprobe_insn_slots and kprobe_optinsn_slots. But they seem to be protected by mutexes. Do you know if there's a sleep-free way to access that protected -- Josh
Detecting kprobes generated code addresses
Hi Masami, I would like to make __kernel_text_address() be able to detect whether an address belongs to code which was generated by kprobes. As far as I can tell, that information seems to be in the 'pages' lists of kprobe_insn_slots and kprobe_optinsn_slots. But they seem to be protected by mutexes. Do you know if there's a sleep-free way to access that protected -- Josh
Detecting kprobes generated code addresses
Hi Masami, I would like to make __kernel_text_address() be able to detect whether an address belongs to code which was generated by kprobes. As far as I can tell, that information seems to be in the 'pages' lists of kprobe_insn_slots and kprobe_optinsn_slots. But they seem to be protected by mutexes. Do you know if there's a sleep-free way to access that information? -- Josh
Detecting kprobes generated code addresses
Hi Masami, I would like to make __kernel_text_address() be able to detect whether an address belongs to code which was generated by kprobes. As far as I can tell, that information seems to be in the 'pages' lists of kprobe_insn_slots and kprobe_optinsn_slots. But they seem to be protected by mutexes. Do you know if there's a sleep-free way to access that information? -- Josh