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>