Subject: newpipes 1.5
To: None <>
From: Jaromír <>
List: tech-kern
Date: 06/06/2001 11:58:21
the newpipe stuff has being worked on little more. The newest and greatest
version is available at

It's a tar archive with patch and two files which need to be moved
to appropriate place. See further instructions at

I'd like to import this into tree soon, probably sometime next week, unless
any serious problems would be found.

Changes since last version:
1) merged in the FreeBSD changes since their rev. 1.60 up to most-current
   rev 1.81 (FreeBSD-specific stuff is within #ifdef __FreeBSD__; this
   includes the kqueue); this includes slighly different way of dealing
   with failures to obtain kva for pipe buffers - I've adopted the FreeBSD
   code, to avoid needless divergence
2) pipe limits are sysctlable, amount of consumed kva is available via
   sysctl too (need to rebuild sysctl(8) of course).
3) fixed O_ASYNC/SIGIO - react to correct ioctl, and deal with
   pid/gid correctly; though this seems to work okay for tests I've done
   so far, I'd need to do some more tests to ensure this really works ok
   for all cases
4) lockmgr(9)-type locks for pipelock()/pipeunlock() - currently disabled
   (#if 0), since using lockmgr(9) locks resulted in like 11% performance
   drop on my 386DX; seems if we want to use lockmgr(9), it needs some tuning
   for LK_EXCLUSIVE-only locks.
5)[] memory leak fixed for direct write (loan)

I've started some talks with FreeBSD folks about merging our changes
back to FreeBSD tree. This would include fix to the O_ASYNC handling once I'd
fully track that down [*]

This version doesn't include SMP fixes, since I've not received any yet.

Please test this out, and let me/list know if you find any problems.
Note I'd be able to reply on Jun 11th soonest.


 [*] See 'struct emul modification' thread on tech-kern@; FreeBSD doesn't
    seem to send SIGIO for pipes in one particular case 
Jaromir Dolecek <>
NetBSD - just plain best OS! -=*=- Got spare MCA cards or docs? Hand me them!