All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Thomas Gleixner <tglx@linuxtronix.de>,
	Mike Galbraith <efault@gmx.de>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Paul Mackerras <paulus@samba.org>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	Lai Jiangshan <laijs@cn.fujitsu.com>,
	Anton Blanchard <anton@samba.org>, Li Zefan <lizf@cn.fujitsu.com>,
	Zhaolei <zhaolei@cn.fujitsu.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	"K . Prasad" <prasad@linux.vnet.ibm.com>,
	Alan Stern <stern@rowland.harvard.edu>
Subject: Re: [RFC][PATCH 1/5] hw-breakpoints: Make kernel breakpoints API truly generic
Date: Mon, 20 Jul 2009 13:27:48 -0400	[thread overview]
Message-ID: <20090720172748.GA27660@Krystal> (raw)
In-Reply-To: <1248109687-7808-2-git-send-email-fweisbec@gmail.com>

* Frederic Weisbecker (fweisbec@gmail.com) wrote:
[...]
> diff --git a/kernel/hw_breakpoint.c b/kernel/hw_breakpoint.c
> index c1f64e6..015fec6 100644
> --- a/kernel/hw_breakpoint.c
> +++ b/kernel/hw_breakpoint.c
> @@ -297,15 +297,21 @@ EXPORT_SYMBOL_GPL(unregister_user_hw_breakpoint);
>  /**
>   * register_kernel_hw_breakpoint - register a hardware breakpoint for kernel space
>   * @bp: the breakpoint structure to register
> - *
> - * @bp.info->name or @bp.info->address, @bp.info->len, @bp.info->type and
> + * @addr: the address where we want to set the breakpoint
> + * @len: length of the value in memory to break in
> + * @type: the type of the breakpoint (read/write/execute)
>   * @bp->triggered must be set properly before invocation

Hi Frederic,

I think one of the great addition in this patchset is to allow using
breakpoints from arch-agnostic code.

It becomes important to document the error values which can be returned
by register_kernel_hw_breakpoint, so this will serve as guidelines for
architecture-specific arch_fill_hw_breakpoint() implementation. This
will become increasingly important, as this abstraction layer will
basically be responsible for either:

- Finding the best support the architecture can provide for a given hw
  breakpoint.
- Failing with an explicit error value telling the in-kernel user why it
  failed (e.g. if it must use a fallback, or return the error to the
  user).

Maybe we should think of a more flexible breakpoint type mapping too,
e.g.:

 monitor _strictly_ execute operation on address 0x...
   -> would fail if the architecture does not support execution access
      monitoring
 monitor (at least) execute operations on address 0x...
   -> would be allowed to use a more general monitor (e.g. RWX) if the
      architecture does not support "execute only" monitor.

(same for read and write)

Mathieu

>   *
>   */
> -int register_kernel_hw_breakpoint(struct hw_breakpoint *bp)
> +int register_kernel_hw_breakpoint(struct hw_breakpoint *bp, unsigned long addr,
> +				  int len, enum breakpoint_type type)
>  {
>  	int rc;
>  
> +	rc = arch_fill_hw_breakpoint(bp, addr, len, type);
> +	if (rc)
> +		return rc;
> +
>  	rc = arch_validate_hwbkpt_settings(bp, NULL);
>  	if (rc)
>  		return rc;
-- 
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F  BA06 3F25 A8FE 3BAE 9A68

  reply	other threads:[~2009-07-20 17:28 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-20 17:08 [RFC][PATCH 0/5] hw-breakpoints: Make the API generic + support for perfcounters Frederic Weisbecker
2009-07-20 17:08 ` [RFC][PATCH 1/5] hw-breakpoints: Make kernel breakpoints API truly generic Frederic Weisbecker
2009-07-20 17:27   ` Mathieu Desnoyers [this message]
2009-07-25  2:37     ` Frederic Weisbecker
2009-07-25 15:38       ` Mathieu Desnoyers
2009-07-28  1:35         ` Frederic Weisbecker
2009-07-21 11:15   ` K.Prasad
2009-07-25  2:56     ` Frederic Weisbecker
2009-07-20 17:08 ` [RFC][PATCH 2/5] hw-breakpoints: Pull up the target symbol in a generic field Frederic Weisbecker
2009-07-20 17:08 ` [RFC][PATCH 3/5] hw-breakpoints: Make user breakpoints API truly generic Frederic Weisbecker
2009-07-20 17:08 ` [RFC][PATCH 4/5] perfcounter: Grow the event number to 64 bits Frederic Weisbecker
2009-07-20 17:08 ` [RFC][PATCH 5/5] perfcounter: Add support for kernel hardware breakpoints Frederic Weisbecker
2009-07-20 17:38   ` Peter Zijlstra
2009-07-21  7:11     ` Frédéric Weisbecker
2009-07-20 17:38   ` Peter Zijlstra
2009-07-21  7:19     ` Frédéric Weisbecker
2009-07-20 17:38   ` Peter Zijlstra
2009-07-20 21:22     ` Frédéric Weisbecker
2009-07-24 20:20       ` Masami Hiramatsu
2009-07-23 13:08   ` Peter Zijlstra
2009-07-23 17:45     ` Peter Zijlstra
2009-07-23 19:56       ` Alan Stern
2009-07-24 14:02     ` Frédéric Weisbecker
2009-07-24 14:26       ` Peter Zijlstra
2009-07-24 17:47         ` Frederic Weisbecker
2009-07-25 10:56           ` Peter Zijlstra
2009-07-25 14:19             ` Frederic Weisbecker
2009-07-25 15:51               ` Mathieu Desnoyers
2009-07-25 16:27                 ` Peter Zijlstra
2009-07-25 16:22               ` Peter Zijlstra
2009-07-25 23:57                 ` K.Prasad
2009-07-27  8:53                   ` Peter Zijlstra
2009-07-28  1:03                     ` Frederic Weisbecker
2009-07-28  7:24                       ` Peter Zijlstra
2009-07-28 14:04                         ` Mathieu Desnoyers
2009-07-28 14:42                           ` Peter Zijlstra
2009-07-29  0:36                         ` Frederic Weisbecker
2009-07-29  8:28                           ` Peter Zijlstra
2009-07-29 14:03                             ` Frederic Weisbecker
2009-07-28 16:12                     ` K.Prasad
2009-07-28 16:41                       ` Peter Zijlstra
2009-07-29  6:37                         ` K.Prasad
2009-07-29  9:22                           ` Peter Zijlstra
2009-07-29 14:57                             ` Arnaldo Carvalho de Melo
2009-07-28  0:18                 ` Frederic Weisbecker
2009-07-28  7:26                   ` Peter Zijlstra

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=20090720172748.GA27660@Krystal \
    --to=mathieu.desnoyers@polymtl.ca \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=anton@samba.org \
    --cc=efault@gmx.de \
    --cc=fweisbec@gmail.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizf@cn.fujitsu.com \
    --cc=mingo@elte.hu \
    --cc=paulus@samba.org \
    --cc=prasad@linux.vnet.ibm.com \
    --cc=rostedt@goodmis.org \
    --cc=stern@rowland.harvard.edu \
    --cc=tglx@linuxtronix.de \
    --cc=zhaolei@cn.fujitsu.com \
    /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.