Re: cvs commit: src/sys/dev/streams streams.csrc/sys/kernkern_descrip.csrc/sys/opencrypto cryptodev.c

From: Scott Long <scottl_at_freebsd.org>
Date: Mon, 20 Oct 2003 13:58:08 -0600 (MDT)
On Mon, 20 Oct 2003, Scott Long wrote:
>
>
> On Mon, 20 Oct 2003, Scott Long wrote:
>
> > On Mon, 20 Oct 2003, David Malone wrote:
> > > > > This reminds me that we still hold Giant around pipe(2) because it isn't
> > > > > declared MPSAFE in the syscall table.  Is this still necessary?
> > >
> > > > I've been suspicious of this too, and I was hoping that you would have
> > > > an answer.  Can we go ahead and correct this?
> > >
> > > I think we may need to check the calling of pipeclose() in pipe(),
> > > but as this is only done in an error case, it is probably safe enough
> > > to just grab Giant for that. (The mac_* calls may need to be checked
> > > too).
> >
> > pipeclose() seems to have some concept of locking, though I don't know
> > what the implications are of it saying, 'gee, the mutex on this pipe was
> > never initialized, so I just won't worry about locking.'  Towards the
> > end of pipeclose() Giant is acquired, though that action is likely no
> > longer needed either.
>
> Nix that last part, I was looking at a stale file.  pipeclose() does not
> explicitely grab Gaint.
>
> Scott
>
>

I've run several buildworlds while doing background pipe tests, all
without any problems with WITNESS and INVARIANTS enabled on a fast SMP
machine.  I can't report any performance change since I'm only testing
correctness now, but it looks promising.  I'd advise to go ahead and
throw the switch on this.

Scott
Received on Mon Oct 20 2003 - 12:56:33 UTC