Re: [patch 04/11] Introduce virtual debug register inthread_struct and wrapper-routines around process related functions

From: Ingo Molnar
Date: Tue Mar 10 2009 - 13:06:48 EST



* Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:

> On Tue, 10 Mar 2009, Ingo Molnar wrote:
>
> > and why is this:
> >
> > > @@ -427,13 +427,9 @@ struct thread_struct {
> > > unsigned long ip;
> > > unsigned long fs;
> > > unsigned long gs;
> > > - /* Hardware debugging registers: */
> > > - unsigned long debugreg0;
> > > - unsigned long debugreg1;
> > > - unsigned long debugreg2;
> > > - unsigned long debugreg3;
> > > - unsigned long debugreg6;
> > > - unsigned long debugreg7;
> > > + /* Hardware breakpoint info */
> > > + unsigned long vdr6;
> > > + struct thread_hw_breakpoint *hw_breakpoint_info;
> >
> > detached from thread_struct? There's a lot of complications
> > (alloc/free, locking, etc.) from this for no good reason - the
> > hardware-breakpoints info structure is alway per thread and is
> > quite small, so there's no reason not to embedd it directly
> > inside thread_struct.
>
> The only reason for separating it out was to avoid bogging
> down the vast majority of threads which aren't debugged. If
> you think the extra overhead isn't worth worrying about then
> the hw-breakpoint info structure can be embedded.

yeah. This new facility is barely used, and such things should
always strive for 100% dumb simplicity. If the overhead of that
structure is ever a problem we can allocate it dynamically. (but
generally it's just not worth the pain)

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/