Re: [PATCHv2 bpf-next 1/6] kprobes: Add new KPROBE_FLAG_ON_FUNC_ENTRY kprobe flag

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



ping, thanks

On Tue, Aug 30, 2022 at 05:08:44PM +0200, Jiri Olsa wrote:
> Masami,
> could you please check on this one?
> 
> thanks,
> jirka
> 
> On Thu, Aug 11, 2022 at 11:15:21AM +0200, Jiri Olsa wrote:
> > Adding KPROBE_FLAG_ON_FUNC_ENTRY kprobe flag to indicate that
> > attach address is on function entry. This is used in following
> > changes in get_func_ip helper to return correct function address.
> > 
> > Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
> > ---
> >  include/linux/kprobes.h | 1 +
> >  kernel/kprobes.c        | 6 +++++-
> >  2 files changed, 6 insertions(+), 1 deletion(-)
> > 
> > diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h
> > index 55041d2f884d..a0b92be98984 100644
> > --- a/include/linux/kprobes.h
> > +++ b/include/linux/kprobes.h
> > @@ -103,6 +103,7 @@ struct kprobe {
> >  				   * this flag is only for optimized_kprobe.
> >  				   */
> >  #define KPROBE_FLAG_FTRACE	8 /* probe is using ftrace */
> > +#define KPROBE_FLAG_ON_FUNC_ENTRY	16 /* probe is on the function entry */
> >  
> >  /* Has this kprobe gone ? */
> >  static inline bool kprobe_gone(struct kprobe *p)
> > diff --git a/kernel/kprobes.c b/kernel/kprobes.c
> > index f214f8c088ed..a6b1b5c49d92 100644
> > --- a/kernel/kprobes.c
> > +++ b/kernel/kprobes.c
> > @@ -1605,9 +1605,10 @@ int register_kprobe(struct kprobe *p)
> >  	struct kprobe *old_p;
> >  	struct module *probed_mod;
> >  	kprobe_opcode_t *addr;
> > +	bool on_func_entry;
> >  
> >  	/* Adjust probe address from symbol */
> > -	addr = kprobe_addr(p);
> > +	addr = _kprobe_addr(p->addr, p->symbol_name, p->offset, &on_func_entry);
> >  	if (IS_ERR(addr))
> >  		return PTR_ERR(addr);
> >  	p->addr = addr;
> > @@ -1627,6 +1628,9 @@ int register_kprobe(struct kprobe *p)
> >  
> >  	mutex_lock(&kprobe_mutex);
> >  
> > +	if (on_func_entry)
> > +		p->flags |= KPROBE_FLAG_ON_FUNC_ENTRY;
> > +
> >  	old_p = get_kprobe(p->addr);
> >  	if (old_p) {
> >  		/* Since this may unoptimize 'old_p', locking 'text_mutex'. */
> > -- 
> > 2.37.1
> > 



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux