Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Sep 2002 13:50:10 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Poul-Henning Kamp <phk@critter.freebsd.dk>
Cc:        Bruce Evans <bde@zeta.org.au>, cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/kern vfs_bio.c src/sys/sys bio.h 
Message-ID:  <200209152050.g8FKoAkl058030@apollo.backplane.com>
References:   <2714.1032121923@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
    Sigh.  Obviously Poul you aren't interested in anyone commenting on
    or critiquing your work.  But this is a large shared project, and
    you are just going to have to live with it.  I don't know what your
    problem is or what the chip on your shoulder is but I don't much care,
    either.  I find your attitude on this list, especially in -committers
    and -all, for this thread, to be entirely inappropriate and you
    should be ashamed of yourself.  You are acting like a small child
    amoungst your peers.

						-Matt

:At this point in time, biowait() is used when formatting floppies,
:and from inside GEOM for operations only called during GEOMs
:discovery phase.
:
:In all these cases the struct bio has no external references, ie,
:no other code even knows it exists, so there is no race condition
:to be had.

    Really.  So you are saying that this is non-critical.  If this
    is so non-critical then why the hell are you doing all this junk?
    Why not simply use a mutex and be done with it?  Are you intentionally
    trying to create a function that is not generally useable or useful?

:If the bio magically finishes between when biowait() checks the
:BIO_DONE bit, but before we sleep on the pointer, we will simply
:take the timeout, find out a little later and move on.

    Which is the problem.

:I repeat: Nobody else can do bad things to the bio, because it is
:a totally private bio to the code in question.

    You have created a general function, biowait(), which you apparently
    have specialized to only be useful and useable and fairly deterministic
    in a particular situation.  That make no sense, Poul.  If you are
    going to generalize the code then do it right.

:
:Anyway, I merely moved a common bit of programming into its own
:function.

    Programming which I believe you originally wrote.  Is this an excuse
    then?  It was broken before so it is justified to make it broken again?
    Or to keep it broken?

    This is the type of code that will come back and bite us in the future.
    You want everyone to use the new BIO subsystem, great, I think it's 
    a wonderful infrastructure.  But then you go off and you create 
    specialized functions that are not generally useful.   I've commented
    about this to Alan too (in his case, all the weird flagging in the 
    VM wiring code).  It's not a good idea to create specialized,
    undocumented code that only one or two people understand how to use.
    You might be able to work with it but the moment someone else starts
    to they are going to hit these issues and that is going to create a
    long term problem for -current.

						-Matt


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




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