From: "K.Prasad" <prasad@linux.vnet.ibm.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Alan Stern <stern@rowland.harvard.edu>,
Roland McGrath <roland@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [patch 02/11] x86 architecture implementation of Hardware Breakpoint interfaces
Date: Sat, 14 Mar 2009 00:31:13 +0530 [thread overview]
Message-ID: <20090313190113.GA15614@in.ibm.com> (raw)
In-Reply-To: <20090313141304.GB12591@elte.hu>
On Fri, Mar 13, 2009 at 03:13:04PM +0100, Ingo Molnar wrote:
>
> * Alan Stern <stern@rowland.harvard.edu> wrote:
>
> > On Fri, 13 Mar 2009, Ingo Molnar wrote:
> >
> > > The core issue being discussed is the debug register
> > > allocation and scheduling model though, and you have not
> > > directly commented on that.
> > >
> > > My argument in a nutshell is that a bottom-up for user +
> > > top-down for kernel use static allocator with no dynamic
> > > scheduling will get us most of the benefits with a tenth of
> > > the complexity.
> >
> > Take this even farther: We shouldn't restrict userspace to
> > bottom-up register allocation. With very little additional
> > effort we can virtualize the debug registers; then userspace
> > can allocate them in whatever order it wants and still end up
> > using the physical registers in bottom-up order (or top-down,
> > which is the order used by the current patches).
> >
> > After all, there's nothing to prevent programs other than gdb
> > from using ptrace, and there's no guarantee that gdb will
> > continue to allocate registers in increasing order.
>
> If in ~10 years of its existence no such usage arose so i dont
> think it will magically appear now.
>
> The thing is, kernel-side use of debug registers is a borderline
> item whose impact we should minimalize as much as possible.
> Linus in the past expressed that it is fine to not have _any_
> management of user versus kernel debug registers. So we want to
> approach this from the minimalistic side. I offered such a very
> minimal design that is trivial in terms of correctness and
> impact.
>
> We can still get this simple allocation model into .30 if we
> dont waste time arguing about unnecessarily. If someone runs
> into limitations the model can be extended.
>
> Ingo
Here's a summary of the intended changes to the patchset, which I hope
to post early the following week. It tears down many features in the
present submission (The write-up below is done without the benefit of
actually having run into limitations while trying to chisel out code).
- Adopt a static allocation method for registers, say FCFS (and perhaps
botton-up for user-space allocations and the reverse for
kernel-space), although individual counters to do book-keeping should also
suffice.
- Use an array of HB_NUM size for storing the breakpoint requests (and
not a linked-list implementation as done now).
- Define a HAVE_HW_BREAKPOINTS in arch/x86/Kconfig unconditionally, but
build kernel/hw_breakpoint.o, samples/hw_breakpoint/data_breakpoint.o
and kernel/trace/trace_ksym.o build conditionally if
HAVE_HW_BREAKPOINTS is declared. Declaring this flag will help
a)prevent build failures in other archs b)Prevent ftrace from showing
up availability of kernel symbol tracing even in unsupported archs.
- Simplify the switch_to_thread_hw_breakpoint() function (any help from
Alan Stern here would be gladly accepted).
- Remove callbacks such as unregister/register.
- remove the code to implement prioritisation of requests
- Add histogram support to include a 'hit counter' to the traced kernel
symbols.
- Address coding-style related comments.
Hope they are not in sync with the comments received thus far. Let me
know if there are changes to be made.
Thanks,
K.Prasad
next prev parent reply other threads:[~2009-03-13 19:01 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20090305043440.189041194@linux.vnet.ibm.com>
2009-03-05 4:37 ` [patch 01/11] Introducing generic hardware breakpoint handler interfaces prasad
2009-03-10 13:50 ` Ingo Molnar
2009-03-10 14:19 ` Alan Stern
2009-03-10 14:50 ` Ingo Molnar
2009-03-11 12:57 ` K.Prasad
2009-03-11 13:35 ` Ingo Molnar
2009-03-05 4:38 ` [patch 02/11] x86 architecture implementation of Hardware Breakpoint interfaces prasad
2009-03-10 14:09 ` Ingo Molnar
2009-03-10 14:59 ` Alan Stern
2009-03-10 15:18 ` Ingo Molnar
2009-03-10 17:11 ` Alan Stern
2009-03-10 17:26 ` Ingo Molnar
2009-03-10 20:30 ` Alan Stern
2009-03-11 12:12 ` Ingo Molnar
2009-03-11 12:50 ` K.Prasad
2009-03-11 13:10 ` Ingo Molnar
2009-03-14 3:46 ` Benjamin Herrenschmidt
2009-03-11 16:39 ` Alan Stern
2009-03-11 16:32 ` Alan Stern
2009-03-11 17:41 ` K.Prasad
2009-03-14 3:47 ` Benjamin Herrenschmidt
2009-03-14 3:43 ` Benjamin Herrenschmidt
2009-03-14 3:41 ` Benjamin Herrenschmidt
2009-03-14 3:40 ` Benjamin Herrenschmidt
2009-03-12 2:46 ` Roland McGrath
2009-03-13 3:43 ` Ingo Molnar
2009-03-13 14:04 ` Alan Stern
2009-03-13 14:13 ` Ingo Molnar
2009-03-13 19:01 ` K.Prasad [this message]
2009-03-13 21:21 ` Alan Stern
2009-03-14 12:24 ` Ingo Molnar
2009-03-14 16:10 ` Alan Stern
2009-03-14 16:39 ` Ingo Molnar
2009-03-14 3:51 ` Benjamin Herrenschmidt
2009-03-05 4:38 ` [patch 03/11] Modifying generic debug exception to use virtual debug registers prasad
2009-03-05 4:38 ` [patch 04/11] Introduce virtual debug register in thread_struct and wrapper-routines around process related functions prasad
2009-03-10 14:35 ` Ingo Molnar
2009-03-10 15:53 ` Alan Stern
2009-03-10 17:06 ` Ingo Molnar
2009-03-12 2:26 ` Roland McGrath
2009-03-05 4:38 ` [patch 05/11] Use wrapper routines around debug registers in processor " prasad
2009-03-05 4:40 ` [patch 06/11] Use virtual debug registers in process/thread handling code prasad
2009-03-10 14:49 ` Ingo Molnar
2009-03-10 16:05 ` Alan Stern
2009-03-10 16:58 ` Ingo Molnar
2009-03-10 17:07 ` Ingo Molnar
2009-03-10 20:10 ` Alan Stern
2009-03-11 11:53 ` Ingo Molnar
2009-03-05 4:40 ` [patch 07/11] Modify signal handling code to refrain from re-enabling HW Breakpoints prasad
2009-03-05 4:40 ` [patch 08/11] Modify Ptrace routines to access breakpoint registers prasad
2009-03-10 14:40 ` Ingo Molnar
2009-03-10 15:54 ` Alan Stern
2009-03-12 3:14 ` Roland McGrath
2009-03-05 4:41 ` [patch 09/11] Cleanup HW Breakpoint registers before kexec prasad
2009-03-10 14:42 ` Ingo Molnar
2009-03-05 4:41 ` [patch 10/11] Sample HW breakpoint over kernel data address prasad
2009-03-05 4:43 ` prasad
2009-03-05 4:43 ` [patch 11/11] ftrace plugin for kernel symbol tracing using HW Breakpoint interfaces prasad
2009-03-05 6:37 ` Frederic Weisbecker
2009-03-05 9:16 ` Ingo Molnar
2009-03-05 13:15 ` K.Prasad
2009-03-05 13:28 ` Ingo Molnar
2009-03-05 11:33 ` K.Prasad
2009-03-05 12:19 ` K.Prasad
2009-03-05 12:30 ` Frederic Weisbecker
2009-03-05 12:28 ` Frederic Weisbecker
2009-03-05 15:00 ` Steven Rostedt
2009-03-05 14:54 ` Steven Rostedt
[not found] <20090307045120.039324630@linux.vnet.ibm.com>
2009-03-07 5:05 ` [Patch 02/11] x86 architecture implementation of Hardware " prasad
[not found] <20090319234044.410725944@K.Prasad>
2009-03-19 23:48 ` K.Prasad
[not found] <20090324152028.754123712@K.Prasad>
2009-03-24 15:25 ` K.Prasad
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=20090313190113.GA15614@in.ibm.com \
--to=prasad@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=roland@redhat.com \
--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