removing pipe bkl

Richard Henderson (rth@twiddle.net)
Mon, 23 Aug 1999 22:55:11 -0700


--J/dobhs11T7y2rNN
Content-Type: text/plain; charset=us-ascii

This started off as just a small tweek to let pipes use the entire page
of memory allocated to them (on 8k machines). I was horrified to discover
that pipe_read and pipe_write still held the Big Kernel Lock.

So, instead of the rather broken ancient PIPE_LOCK thing, we now use
the inode semaphore to protect all of the pipe data. The ring buffer
has been adjusted to use a full page of memory. Note that this does
not change the value of PIPE_BUF -- all that value does is make
atomicity guarantees.

One thing that warrents study by other eyes is the removal of the
PIPE_{RD,WR}_OPENERS code from fifo.c. For the life of me I could
not figure out what assurance that provided over the PIPE_READERS
and PIPE_WRITERS flags alone. Based on the PIPE_LOCK code, I'm
quite willing to believe that PIPE_RD_OPENERS merely papered over
other locking issues, and by properly mutexing the pipe data we
will not see whatever losage prompted that code.

This has been tested via a kernel make -j6 on UP only -- I'd have
to go up to the office to try SMP, which I don't feel like doing
this evening. Nor have I yet bothered to collect performance data.

r~

--J/dobhs11T7y2rNN
Content-Type: application/x-gunzip
Content-Disposition: attachment; filename="d-pipe.gz"
Content-Transfer-Encoding: base64

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

--J/dobhs11T7y2rNN--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/