debug defines in libc_r on 6.0

Daniel Eischen deischen at freebsd.org
Tue Oct 11 16:50:41 PDT 2005


On Tue, 11 Oct 2005, Mikhail Teterin wrote:

> =D7=A6=D7=D4=CF=D2=CF=CB 11 =D6=CF=D7=D4=C5=CE=D8 2005 19:00, Daniel Eisc=
hen =F7=C9 =CE=C1=D0=C9=D3=C1=CC=C9:
> > No, it's only a couple of instructions for a very few operations.
> > I've already replied to you about these before. =9AI don't care
> > whether re@ turns them off or not, but go read my prior email
> > on this topic. =9AI should eliminate the #defines and always do
> > the checks, so you wouldn't notice :(
>
> We make such checks (however inexpensive) conditional on various DEBUG* a=
nd
> INVARIANTS* flags in the kernel and userspace should be no different. The
> whole idea of assert() is to provide a way to add debugging checks, which=
 --
> however cheap they are -- can be easily removed from a _release_ version =
of
> one's software.

That's why when I do anything else like this, I'll not make them
conditional.  They were initially conditional because we didn't
know what was eventually going to be put behind them.  Now we
know and it's nothing.  You're just seeing them because they
say DEBUG and INVARIANTS.  If they weren't conditional, noone
would notice.

> I remember your e-mail and continue to disagree with it -- the debugging
> information and checks are, understandably, precious to you, but if we lo=
se,
> say, a MySQL benchmark by even a small percentage, the advocacy loss will=
 be
> immense...

Please know what it is you are talking about.  MySQL benchmarks have
been run with and without these flags without any change.

> IMHO, the flags should be removed in RELENG_6, or, at least, in RELENG_6_=
0.

I'm not having this discussion again.

--=20
DE



More information about the freebsd-threads mailing list