public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Frederic Weisbecker <fweisbec@gmail.com>
To: David Daney <ddaney@caviumnetworks.com>
Cc: Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>,
	"K.Prasad" <prasad@linux.vnet.ibm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Alan Stern <stern@rowland.harvard.edu>
Subject: Re: [PATCH 11/12] hw-breakpoints: ftrace plugin for kernel symbol tracing using HW Breakpoint interfaces
Date: Wed, 3 Jun 2009 02:38:12 +0200	[thread overview]
Message-ID: <20090603003811.GF6041@nowhere> (raw)
In-Reply-To: <4A25B1C8.7030708@caviumnetworks.com>

On Tue, Jun 02, 2009 at 04:12:08PM -0700, David Daney wrote:
> Frederic Weisbecker wrote:
>> From: K.Prasad <prasad@linux.vnet.ibm.com>
>>
>> This patch adds an ftrace plugin to detect and profile memory access over kernel
>> variables. It uses HW Breakpoint interfaces to 'watch memory addresses.
>>
>> Signed-off-by: K.Prasad <prasad@linux.vnet.ibm.com>
>> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
>> ---
>>  kernel/trace/Kconfig          |   21 ++
>>  kernel/trace/Makefile         |    1 +
>>  kernel/trace/trace.h          |   23 ++
>>  kernel/trace/trace_ksym.c     |  525 +++++++++++++++++++++++++++++++++++++++++
>>  kernel/trace/trace_selftest.c |   53 ++++
>>  5 files changed, 623 insertions(+), 0 deletions(-)
>>  create mode 100644 kernel/trace/trace_ksym.c
> [...]
>> +	entry->ksym_hbp->info.name = ksymname;
>> +	entry->ksym_hbp->info.type = op;
>> +	entry->ksym_addr = entry->ksym_hbp->info.address = addr;
>> +#ifdef CONFIG_X86
>> +	entry->ksym_hbp->info.len = HW_BREAKPOINT_LEN_4;
>> +#endif
>
> What if the symbol referred to an object of size other than 4?  This  
> would clearly be incorrect in that case.
>
>
>> +	entry->ksym_hbp->triggered = (void *)ksym_hbp_handler;
>> +
>> +	ret = register_kernel_hw_breakpoint(entry->ksym_hbp);
>
> I hate to sound like a broken record, but could some one explain to me  
> again why it is a good idea to design a new API that requires processor  
> specific #ifdefs to be sprinkled all around generic kernel code?
>
> Back in:
> http://lkml.org/lkml/2008/12/4/329
> and
> http://lkml.org/lkml/2009/5/21/189
>
> I raised doubts about this hw-breakpoint thing being generic and the  
> responses made think that the processor specific portions would be  
> isolated in the processor specific parts of the kernel.  I now see that  
> I was wrong.
>
> When we add sparc, MIPS, ppc...  Support it would be nice to not have to  
> add all our own #ifdefs to this, but instead have a generic interface  
> that will not need changes.
>
> David Daney

I was discussing about it with Prasad few hours ago :)

The fact is that archs support the hardware breakpoints in
very different ways each.
Some of them support read breakpoint, others not (x86).
Some support addresses range, others (x86).

But still it would be nice to gather the most common
breakpoints operations through a real generic wrapper
that relies on arch specific implmentation in
background.

Such as setting very simple x/w/r breakpoints...

Well Prasad and Alan Stern could tell more about it,
I wait for their answer.

Anyway it's a fairly new Api that can still evolve.
The basis are set but can still be improved and more high level
and generic things can still be implemented.


  reply	other threads:[~2009-06-03  0:38 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-02 22:43 [PATCH 00/12] hw-breakpoints: new hardware breakpoints API Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 01/12] hw-breakpoints: prepare the code for Hardware Breakpoint interfaces Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 02/12] hw-breakpoints: introducing generic hardware breakpoint handler interfaces Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 03/12] hw-breakpoints: x86 architecture implementation of Hardware Breakpoint interfaces Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 04/12] hw-breakpoints: modifying generic debug exception to use thread-specific debug registers Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 05/12] hw-breakpoints: use wrapper routines around debug registers in processor related functions Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 06/12] hw-breakpoints: use the new wrapper routines to access debug registers in process/thread code Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 07/12] hw-breakpoints: modify signal handling code to refrain from re-enabling HW Breakpoints Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 08/12] hw-breakpoints: modify Ptrace routines to access breakpoint registers Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 09/12] hw-breakpoints: cleanup HW Breakpoint registers before kexec Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 10/12] hw-breakpoints: sample HW breakpoint over kernel data address Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 11/12] hw-breakpoints: ftrace plugin for kernel symbol tracing using HW Breakpoint interfaces Frederic Weisbecker
2009-06-02 23:12   ` David Daney
2009-06-03  0:38     ` Frederic Weisbecker [this message]
2009-06-03 16:03       ` David Daney
2009-06-04 15:45       ` K.Prasad
2009-06-05 11:44         ` Frederic Weisbecker
2009-06-04 15:36     ` K.Prasad
2009-06-05 11:37       ` Frederic Weisbecker
2009-06-02 22:43 ` [PATCH 12/12] hw-breakpoints: reset bits in dr6 after the corresponding exception is handled Frederic Weisbecker
2009-06-02 23:38 ` [PATCH 00/12] hw-breakpoints: new hardware breakpoints API Ingo Molnar

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=20090603003811.GF6041@nowhere \
    --to=fweisbec@gmail.com \
    --cc=ddaney@caviumnetworks.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=prasad@linux.vnet.ibm.com \
    --cc=rostedt@goodmis.org \
    --cc=stern@rowland.harvard.edu \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox