Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys



On Mon, Feb 22, 2010 at 11:31:31AM -0600, David Young wrote:
> On Sun, Feb 21, 2010 at 02:11:40AM +0000, Darran Hunt wrote:
> > Module Name:        src
> > Committed By:       darran
> > Date:               Sun Feb 21 02:11:40 UTC 2010
> > 
> > Modified Files:
> >     src/sys/arch/i386/i386: trap.c vector.S
> >     src/sys/kern: kern_lwp.c kern_proc.c kern_synch.c
> >     src/sys/sys: lwp.h proc.h
> > Added Files:
> >     src/sys/sys: dtrace_bsd.h
> > 
> > Log Message:
> > Add the DTrace hooks to the kernel (KDTRACE_HOOKS config option).
> > DTrace adds a pointer to the lwp and proc structures which it uses to
> > manage its state.  These are opaque from the kernel perspective to keep
> > the kernel free of CDDL code. The state arenas are kmem_alloced and freed
> > as proccesses and threads are created and destoyed.
> > 
> > Also add a check for trap06 (privileged/illegal instruction) so that
> > DTrace can check for D scripts that may have triggered the trap so it
> > can clean up after them and resume normal operation.
> > 
> > Ok with core@.
> 
> Wow, dtrace in the kernel!  This is exciting, thanks!
> 
> #ifdef makes kernel code hard to read.  Will you help arrest the
> accretion of conditional compilation in kern_synch.c by consolidating
> the conditional compilation in a static subroutine, for example:
> 
> static void
> dtrace_vtime_switch(lwp_t *newl)
> {
> #ifdef KDTRACE_HOOKS
>       /*
>        * If DTrace has set the active vtime enum to anything
>        * other than INACTIVE (0), then it should have set the
>        * function to call.
>        */
>       if (dtrace_vtime_active) {
>               (*dtrace_vtime_switch_func)(newl);
>       }
> #endif

How much code do the hooks add?  If it is not very much, then just drop
the ifdefs completely..



Home | Main Index | Thread Index | Old Index