All of lore.kernel.org
 help / color / mirror / Atom feed
From: oleg@redhat.com (Oleg Nesterov)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 01/15] uprobes: allow ignoring of probe hits
Date: Thu, 28 Nov 2013 19:41:42 +0100	[thread overview]
Message-ID: <20131128184142.GA21889@redhat.com> (raw)
In-Reply-To: <1385520814-10663-2-git-send-email-dave.long@linaro.org>

On 11/26, David Long wrote:
>
> From: "David A. Long" <dave.long@linaro.org>
>
> Allow arches to decided to ignore a probe hit.  ARM will use this to
> only call handlers if the conditions to execute a conditionally executed
> instruction are satisfied.
>
> Upleveled for v3.12-rc5.
>
> Signed-off-by: David A. Long <dave.long@linaro.org>

Acked-by: Oleg Nesterov <oleg@redhat.com>


> ---
>  include/linux/uprobes.h | 1 +
>  kernel/events/uprobes.c | 9 +++++++++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h
> index 319eae7..197a36e 100644
> --- a/include/linux/uprobes.h
> +++ b/include/linux/uprobes.h
> @@ -134,6 +134,7 @@ extern bool arch_uprobe_xol_was_trapped(struct task_struct *tsk);
>  extern int  arch_uprobe_exception_notify(struct notifier_block *self, unsigned long val, void *data);
>  extern void arch_uprobe_abort_xol(struct arch_uprobe *aup, struct pt_regs *regs);
>  extern unsigned long arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr, struct pt_regs *regs);
> +extern bool __weak arch_uprobe_ignore(struct arch_uprobe *aup, struct pt_regs *regs);
>  #else /* !CONFIG_UPROBES */
>  struct uprobes_state {
>  };
> diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
> index 24b7d6c..4eec7ce 100644
> --- a/kernel/events/uprobes.c
> +++ b/kernel/events/uprobes.c
> @@ -1778,6 +1778,11 @@ static bool handle_trampoline(struct pt_regs *regs)
>  	return true;
>  }
>  
> +bool __weak arch_uprobe_ignore(struct arch_uprobe *aup, struct pt_regs *regs)
> +{
> +	return false;
> +}
> +
>  /*
>   * Run handler and ask thread to singlestep.
>   * Ensure all non-fatal signals cannot interrupt thread while it singlesteps.
> @@ -1828,7 +1833,11 @@ static void handle_swbp(struct pt_regs *regs)
>  	if (unlikely(!test_bit(UPROBE_COPY_INSN, &uprobe->flags)))
>  		goto out;
>  
> +	if (arch_uprobe_ignore(&uprobe->arch, regs))
> +		goto out;
> +
>  	handler_chain(uprobe, regs);
> +
>  	if (can_skip_sstep(uprobe, regs))
>  		goto out;
>  
> -- 
> 1.8.1.2
> 

WARNING: multiple messages have this Message-ID (diff)
From: Oleg Nesterov <oleg@redhat.com>
To: David Long <dave.long@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	Russell King <linux@arm.linux.org.uk>,
	Rabin Vincent <rabin@rab.in>,
	"Jon Medhurst (Tixy)" <tixy@linaro.org>,
	Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
	Ingo Molnar <mingo@redhat.com>,
	Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
	Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
	Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>,
	davem@davemloft.net, Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Paul Mackerras <paulus@samba.org>,
	Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 01/15] uprobes: allow ignoring of probe hits
Date: Thu, 28 Nov 2013 19:41:42 +0100	[thread overview]
Message-ID: <20131128184142.GA21889@redhat.com> (raw)
In-Reply-To: <1385520814-10663-2-git-send-email-dave.long@linaro.org>

On 11/26, David Long wrote:
>
> From: "David A. Long" <dave.long@linaro.org>
>
> Allow arches to decided to ignore a probe hit.  ARM will use this to
> only call handlers if the conditions to execute a conditionally executed
> instruction are satisfied.
>
> Upleveled for v3.12-rc5.
>
> Signed-off-by: David A. Long <dave.long@linaro.org>

Acked-by: Oleg Nesterov <oleg@redhat.com>


> ---
>  include/linux/uprobes.h | 1 +
>  kernel/events/uprobes.c | 9 +++++++++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h
> index 319eae7..197a36e 100644
> --- a/include/linux/uprobes.h
> +++ b/include/linux/uprobes.h
> @@ -134,6 +134,7 @@ extern bool arch_uprobe_xol_was_trapped(struct task_struct *tsk);
>  extern int  arch_uprobe_exception_notify(struct notifier_block *self, unsigned long val, void *data);
>  extern void arch_uprobe_abort_xol(struct arch_uprobe *aup, struct pt_regs *regs);
>  extern unsigned long arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr, struct pt_regs *regs);
> +extern bool __weak arch_uprobe_ignore(struct arch_uprobe *aup, struct pt_regs *regs);
>  #else /* !CONFIG_UPROBES */
>  struct uprobes_state {
>  };
> diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
> index 24b7d6c..4eec7ce 100644
> --- a/kernel/events/uprobes.c
> +++ b/kernel/events/uprobes.c
> @@ -1778,6 +1778,11 @@ static bool handle_trampoline(struct pt_regs *regs)
>  	return true;
>  }
>  
> +bool __weak arch_uprobe_ignore(struct arch_uprobe *aup, struct pt_regs *regs)
> +{
> +	return false;
> +}
> +
>  /*
>   * Run handler and ask thread to singlestep.
>   * Ensure all non-fatal signals cannot interrupt thread while it singlesteps.
> @@ -1828,7 +1833,11 @@ static void handle_swbp(struct pt_regs *regs)
>  	if (unlikely(!test_bit(UPROBE_COPY_INSN, &uprobe->flags)))
>  		goto out;
>  
> +	if (arch_uprobe_ignore(&uprobe->arch, regs))
> +		goto out;
> +
>  	handler_chain(uprobe, regs);
> +
>  	if (can_skip_sstep(uprobe, regs))
>  		goto out;
>  
> -- 
> 1.8.1.2
> 


  reply	other threads:[~2013-11-28 18:41 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-27  2:53 [PATCH v3 00/15] uprobes: Add uprobes support for ARM David Long
2013-11-27  2:53 ` David Long
2013-11-27  2:53 ` [PATCH v3 01/15] uprobes: allow ignoring of probe hits David Long
2013-11-27  2:53   ` David Long
2013-11-28 18:41   ` Oleg Nesterov [this message]
2013-11-28 18:41     ` Oleg Nesterov
2013-11-27  2:53 ` [PATCH v3 02/15] ARM: move shared uprobe/kprobe definitions into new include file David Long
2013-11-27  2:53   ` David Long
2013-11-27  2:53 ` [PATCH v3 03/15] ARM: Move generic arm instruction parsing code to new files for sharing between features David Long
2013-11-27  2:53   ` David Long
2013-11-27  2:53 ` [PATCH v3 04/15] ARM: move generic thumb instruction parsing code to new files for use by other feature David Long
2013-11-27  2:53   ` David Long
2013-11-27  2:53 ` [PATCH v3 05/15] ARM: use a function table for determining instruction interpreter actions David Long
2013-11-27  2:53   ` David Long
2013-11-27  2:53 ` [PATCH v3 06/15] ARM: Disable jprobes test when built into thumb-mode kernel David Long
2013-11-27  2:53   ` David Long
2013-11-27 10:16   ` Masami Hiramatsu
2013-11-27 10:16     ` Masami Hiramatsu
2013-11-27 10:41     ` Jon Medhurst (Tixy)
2013-11-27  2:53 ` [PATCH v3 07/15] ARM: Remove use of struct kprobe from generic probes code David Long
2013-11-27  2:53   ` David Long
2013-11-27  2:53 ` [PATCH v3 08/15] ARM: Use new opcode type in ARM kprobes/uprobes code David Long
2013-11-27  2:53   ` David Long
2013-11-27  2:53 ` [PATCH v3 09/15] ARM: Make the kprobes condition_check symbol names more generic David Long
2013-11-27  2:53   ` David Long
2013-11-27  2:53 ` [PATCH v3 10/15] ARM: Change more ARM kprobes symbol names to something more David Long
2013-11-27  2:53   ` David Long
2013-11-27  2:53 ` [PATCH v3 11/15] ARM: Rename the shared kprobes/uprobe return value enum David Long
2013-11-27  2:53   ` David Long
2013-11-27  2:53 ` [PATCH v3 12/15] ARM: Change the remaining shared kprobes/uprobes symbols to something generic David Long
2013-11-27  2:53   ` David Long
2013-11-27  2:53 ` [PATCH v3 13/15] ARM: Add an emulate flag to the kprobes/uprobes instruction decode functions David Long
2013-11-27  2:53   ` David Long
2013-11-27  2:53 ` [PATCH v3 14/15] ARM: add uprobes support David Long
2013-11-27  2:53   ` David Long
2013-12-04 17:23   ` Taras Kondratiuk
2013-12-04 17:23     ` Taras Kondratiuk
2013-11-27  2:53 ` [PATCH v3 15/15] ARM: Remove uprobes dependency on kprobes David Long
2013-11-27  2:53   ` David Long
2013-12-04 17:51 ` [PATCH v3 00/15] uprobes: Add uprobes support for ARM Taras Kondratiuk
2013-12-04 17:51   ` Taras Kondratiuk
2013-12-05 19:48   ` David Long
2013-12-05 19:48     ` David Long
2013-12-05 20:17   ` David Long
2013-12-05 20:17     ` David Long
2013-12-20 16:10     ` Jon Medhurst (Tixy)
2013-12-20 16:10       ` Jon Medhurst (Tixy)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131128184142.GA21889@redhat.com \
    --to=oleg@redhat.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.