Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Feb 2002 09:33:48 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        peter@FreeBSD.ORG, current@FreeBSD.ORG
Subject:   Re: you broke current in some weird way... etc
Message-ID:  <200202271733.g1RHXmh27846@apollo.backplane.com>
References:   <95075.1014756753@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
:date: 2002/02/27 09:51:32;  author: peter;  state: Exp;  lines: +245 -191
:Back out all the pmap related stuff I've touched over the last few days.
:There is some unresolved badness that has been eluding me, particularly
:affecting uniprocessor kernels.  Turning off PG_G helped (which is a bad
:sign) but didn't solve it entirely.  Userland programs still crashed.

    I'm just going to use this opportunity to plug the concept of temporary
    sysctl-instrumentation for a commit like this.  I'm not saying that
    sysctl instrumentation will catch such problems every time, or that it
    is appropriate in all cases, but if you had done it and turning off the
    sysctl had stopped the crashes you could have simply committed a change
    to the sysctl default.  This would have stopped the breakage in the 
    general community and give you time to track the problem down with the
    aid of those specific developers who reported the problem.  

    This rather then backing out the entire commit which creates additional
    disruption and makes it difficult to solicit help from the people
    reporting the problem.

    I'm just going to contrast this with my critical_*() commit - the whiners
    that forced the backout aside, if the commit had stayed in and through
    normal developer testing was found to be buggy, the fact that it is
    instrumented would have (1) made validation of the bug easy, (2) allowed
    developers to get back to a working system without having to back anything
    out, and (3) it DID greatly improve my ability to follow-up with Ian
    to track the bug down, again without him having to back anything out.

    The length of time one keeps the instrumentation is heavily dependant on
    the feature being instrumented.  For critical_*() I expect to keep the
    instrumentation intact only for a two or three months.  For Giant wrappers
    I intend to keep it intact through the 5.0 release.  Another example would
    be something like vfs.vmiodirenable.  This sysctl allowed three or four
    developers to track down VMIO-backed directory bugs over a period of a
    year in stable without effecting our userbase.  I recently made it the
    default and I'll probably remove the instrumentation entirely within 
    the next two releases or so.  I can't even begin guessing how much time
    and effort that sysctl has saved me.

    It's a win-win proposition.  just a thought.

						-Matt


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?200202271733.g1RHXmh27846>