Subject: CVS commit: basesrc
To: None <source-changes@netbsd.org>
From: Jaromir Dolecek <jdolecek@netbsd.org>
List: source-changes
Date: 06/16/2001 15:00:04
Module Name:	basesrc
Committed By:	jdolecek
Date:		Sat Jun 16 12:00:04 UTC 2001

Modified Files:
	basesrc/sbin/sysctl: sysctl.8 sysctl.c
	syssrc/sys/conf: files
	syssrc/sys/kern: init_main.c kern_sysctl.c sys_pipe.c uipc_syscalls.c
	syssrc/sys/sys: malloc.h pipe.h sysctl.h

Log Message:
Add port of high performance pipe implementation written by John S. Dyson
for FreeBSD project. Besides huge speed boost compared with socketpair-based
pipes, this implementation also uses pagable kernel memory instead of mbufs.

Significant differences to FreeBSD version:
* uses uvm_loan() facility for direct write
* async/SIGIO handling correct also for sync writer, async reader
* limits settable via sysctl, amountpipekva and nbigpipes available via sysctl
* pipes are unidirectional - this is enforced on file descriptor level
	for now only, the code would be updated to take advantage of it
	eventually
* uses lockmgr(9)-based locks instead of home brew variant
* scatter-gather write is handled correctly for direct write case, data
  is transferred by PIPE_DIRECT_CHUNK bytes maximum, to avoid running out of kva

All FreeBSD/NetBSD specific code is within appropriate #ifdef, in preparation
to feed changes back to FreeBSD tree.

This pipe implementation is optional for now, add 'options NEW_PIPE'
to your kernel config to use it.


To generate a diff of this commit:
cvs rdiff -r1.66 -r1.67 basesrc/sbin/sysctl/sysctl.8
cvs rdiff -r1.46 -r1.47 basesrc/sbin/sysctl/sysctl.c
cvs rdiff -r1.446 -r1.447 syssrc/sys/conf/files
cvs rdiff -r1.191 -r1.192 syssrc/sys/kern/init_main.c
cvs rdiff -r1.88 -r1.89 syssrc/sys/kern/kern_sysctl.c
cvs rdiff -r1.1.1.1 -r1.2 syssrc/sys/kern/sys_pipe.c
cvs rdiff -r1.59 -r1.60 syssrc/sys/kern/uipc_syscalls.c
cvs rdiff -r1.62 -r1.63 syssrc/sys/sys/malloc.h
cvs rdiff -r1.1.1.1 -r1.2 syssrc/sys/sys/pipe.h
cvs rdiff -r1.61 -r1.62 syssrc/sys/sys/sysctl.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.