LOCK_PROFILING in -stable

Alfred Perlstein alfred at freebsd.org
Wed Oct 24 13:41:11 PDT 2007


* Skip Ford <skip at menantico.com> [071024 10:47] wrote:
> Robert Watson wrote:
> > On Sat, 20 Oct 2007, Alfred Perlstein wrote:
> > 
> > >>This is my feeling also -- I would consider ABI breakage a show stopper 
> > >>for 6.x, but feel otherwise that the new code is much more mature and 
> > >>capable and would be quite beneficial to people building appliances and 
> > >>related products on 6.x. You might check with Attilio about whether there 
> > >>are any remaining outstanding issues that need to be resolved first, and 
> > >>make sure to send a heads up out on stable@ and put a note in UPDATING 
> > >>that the option and details have changed.
> > >
> > >I still get confused as to the meaning of this...
> > >
> > >It only breaks ABI when it's enabled.
> > >
> > >I think that is OK, right?
> > 
> > As we're eliminating MUTEX_PROFILING and replacing it with LOCK_PROFILING, 
> > I think it is OK that the ABI for one differs from the other as long as the 
> > base kernel ABI remains static.  I.e., this seems OK to me also.
> 
> If -stable will have LOCK_PROFILING, it'd be really nice to have
> it compatible with a standard world in some way, even if just with
> a makefile hack that builds netstat_lp(1) in addition to
> netstat(1) (and other utilities.)
> 
> One can easily boot a diskless email, web, or name server into
> kernels with other debug-type options without maintaining
> multiple worlds.  One might want to run a LOCK_PROFILING stable
> kernel on a diskless email server for a period of time, but
> that will require either a matching world, or putting up with
> breakage for that period of time, neither of which is a fair
> expectation in a stable environment, IMO.
> 
> I can maintain local makefile hacks for production if somebody
> with some makefile foo gets me started.

This is really beyond the scope of what I have time for however
I can say that probably all that is needed is a Makefile that
uses something like a makefile in a directory next to netstat
called netstat_lp and either duplicate the makefile and add:

SRCDIR=             ${.CURDIR}/netstat
CFLAGS+=		-DLOCKPROFILING

or like make the netstat directory have a "Makefile.netstat.inc" in it
with the common parts and have both Makefiles for netstat and netstat_lp
include it.  in fact you could hack netstat to exec netstat_lp if the
sysctls indicating lockprofiling is enabled... ewwww. :)

good luck!

-- 
- Alfred Perlstein


More information about the freebsd-stable mailing list