Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Jan 2002 16:26:35 -0800 (PST)
From:      k Macy <kip_macy@yahoo.com>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        freebsd-current@FreeBSD.ORG
Subject:   Re: profiled kernel build fails was Re: -CURRENT AIO bug
Message-ID:  <20020121002635.39089.qmail@web14001.mail.yahoo.com>
In-Reply-To: <20020120164213.L7131-100000@gamplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Should I file a PR to track this or is that overkill?
		-Kip
--- Bruce Evans <bde@zeta.org.au> wrote:
> On Sat, 19 Jan 2002, k Macy wrote:
> 
> > Thanks for working on this. I was going to try
> running
> > a profiled kernel on -CURRENT and -STABLE to see
> what
> > the difference was in time distribution. On
> -STABLE
> > it built without a hitch. However, on -CURRENT I
> got
> > the following even after doing a make clean:
> >
> > ../../../libkern/mcount.c: In function `mcount':
> > ../../../libkern/mcount.c:91: `mcount_lock'
> undeclared
> > (first use in this function)
> 
> The mcount_lock stuff apparently never even
> compiled.  It is only used
> for the !GUPROF && SMP case, but it cannot work in
> that case since
> mcount_lock is not declared.  Unfortunately, LINT
> only tests the GUPROF
> case, which compiles but is even more broken at
> runtime in the SMP
> case.  GUPROF worse fine in the !SMP case and should
> be non-optional
> (it gives about 100000 times as much resolution as
> PROF on current
> machines, instead of only 1000 times as much as on
> 486's when it was
> written).
> 
> This fix has not been tested.  It has some chance of
> working, because
> RELENG_4 uses similar code.  However, it is
> certainly broken if the
> atomic functions that it calls are not inlined (then
> the functions will
> call MCOUNT_ENTER() on entry).  I think this only
> happens if mcount.c
> is compiled with -O0.  This bug is missing in
> RELENG_4 too.
> 
> %%%
> Index: profile.h
>
===================================================================
> RCS file:
> /home/ncvs/src/sys/i386/include/profile.h,v
> retrieving revision 1.25
> diff -u -2 -r1.25 profile.h
> --- profile.h	30 Oct 2001 15:04:57 -0000	1.25
> +++ profile.h	20 Jan 2002 06:05:24 -0000
> @@ -65,4 +65,5 @@
>  #define	MCOUNT_DECL(s)	u_long s;
>  #ifdef SMP
> +extern int	mcount_lock;
>  #define	MCOUNT_ENTER(s)	{ s = read_eflags();
> disable_intr(); \
>   			  while (!atomic_cmpset_acq_int(&mcount_lock,
> 0, 1)) \
> %%%
> 
> Bruce
> 


__________________________________________________
Do You Yahoo!?
Send FREE video emails in Yahoo! Mail!
http://promo.yahoo.com/videomail/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020121002635.39089.qmail>