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>
