The NetBSD Project

CVS log for src/sys/sys/pipe.h

[BACK] Up to [cvs.NetBSD.org] / src / sys / sys

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.42: download - view: text, markup, annotated - select for diffs
Thu Nov 2 10:31:55 2023 UTC (13 months ago) by martin
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, HEAD
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +23 -23 lines
Back out the following revisions on behalf of core:

	sys/sys/lwp.h: revision 1.228
	sys/sys/pipe.h: revision 1.40
	sys/kern/uipc_socket.c: revision 1.306
	sys/kern/kern_sleepq.c: revision 1.84
	sys/rump/librump/rumpkern/locks_up.c: revision 1.13
	sys/kern/sys_pipe.c: revision 1.165
	usr.bin/fstat/fstat.c: revision 1.119
	sys/rump/librump/rumpkern/locks.c: revision 1.87
	sys/ddb/db_xxx.c: revision 1.78
	sys/ddb/db_command.c: revision 1.187
	sys/sys/condvar.h: revision 1.18
	sys/ddb/db_interface.h: revision 1.42
	sys/sys/socketvar.h: revision 1.166
	sys/kern/uipc_syscalls.c: revision 1.209
	sys/kern/kern_condvar.c: revision 1.60

  Add cv_fdrestart() [...]
  Use cv_fdrestart() to implement fo_restart.
  Simplify/streamline pipes a little bit [...]

This changes have caused regressions and need to be debugged.
The cv_fdrestart() addition needs more discussion.

Revision 1.41: download - view: text, markup, annotated - select for diffs
Tue Oct 17 10:28:06 2023 UTC (13 months, 3 weeks ago) by riastradh
Branches: MAIN
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +12 -12 lines
sys/pipe.h: #define<tab>

No functional change intended.

Revision 1.40: download - view: text, markup, annotated - select for diffs
Fri Oct 13 19:07:09 2023 UTC (13 months, 3 weeks ago) by ad
Branches: MAIN
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +23 -23 lines
Simplify/streamline pipes a little bit:

- Allocate only one struct pipe not two (no need to be bidirectional here).
- Then use f_flag (FREAD/FWRITE) to figure out what to do in the fileops.
- Never wake the other side or acquire long-term (I/O) lock unless needed.
- Whenever possible, defer wakeups until after locks have been released.
- Do some things locklessly in pipe_ioctl() and pipe_poll().

Some notable results:

- -30% latency on a 486DX2/66 doing 1 byte ping-pong within a single process.
- 2.5x less lock contention during "make cleandir" of src on a 48 CPU machine.
- 1.5x bandwith with 1kB messages on the same 48 CPU machine (8kB: same b/w).

Revision 1.39: download - view: text, markup, annotated - select for diffs
Wed Oct 4 22:19:58 2023 UTC (14 months ago) by ad
Branches: MAIN
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +2 -3 lines
pipe->pipe_waiters isn't needed on NetBSD, kernel condvars do this for free.

Revision 1.37.2.1: download - view: text, markup, annotated - select for diffs
Sat Apr 3 22:29:03 2021 UTC (3 years, 8 months ago) by thorpej
Branches: thorpej-futex
Diff to: previous 1.37: preferred, colored; next MAIN 1.38: preferred, colored
Changes since revision 1.37: +3 -3 lines
Sync with HEAD.

Revision 1.38: download - view: text, markup, annotated - select for diffs
Mon Jan 25 19:21:11 2021 UTC (3 years, 10 months ago) by dholland
Branches: MAIN
CVS tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +3 -3 lines
Fix a thundering herd problem in pipes.

Wake only one waiter when data becomes available, not all of them.
Waking them all is not a usual case, but turns up with make's job
token pipes. (Probably make's job signalling scheme should also be
revised, assuming rillig hasn't already done that, but that's a
separate issue.)

This change will not do us much good for the moment because we don't
distinguish cv_signal from cv_broadcast for interruptible sleeps, but
that's also a separate problem.

Seen on FreeBSD; from mjg at freebsd a couple months ago. Patch was
mine (iirc) but the real work in this sort of thing is discovering the
problem.

Revision 1.37: download - view: text, markup, annotated - select for diffs
Thu Jun 25 14:22:19 2020 UTC (4 years, 5 months ago) by jdolecek
Branches: MAIN
Branch point for: thorpej-futex
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +1 -15 lines
remove experimental direct pipe code (using uvm_loan()) I added in 2001 - it's
slower than the non-direct variant on MP systems, if anybody wants
to hack on this further it's available in Attic

Revision 1.35.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:09:57 2019 UTC (5 years, 5 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.35: preferred, colored; next MAIN 1.36: preferred, colored
Changes since revision 1.35: +1 -11 lines
Sync with HEAD

Revision 1.33.16.3: download - view: text, markup, annotated - select for diffs
Thu Sep 6 06:56:47 2018 UTC (6 years, 3 months ago) by pgoyette
Branches: pgoyette-compat
CVS tags: pgoyette-compat-merge-20190127
Diff to: previous 1.33.16.2: preferred, colored; branchpoint 1.33: preferred, colored; next MAIN 1.34: preferred, colored
Changes since revision 1.33.16.2: +1 -11 lines
Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)

Revision 1.36: download - view: text, markup, annotated - select for diffs
Wed Aug 22 01:05:24 2018 UTC (6 years, 3 months ago) by msaitoh
Branches: MAIN
CVS tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, netbsd-9-base, netbsd-9-4-RELEASE, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, isaki-audio2-base, isaki-audio2, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +1 -11 lines
- Cleanup for dynamic sysctl:
  - Remove unused *_NAMES macros for sysctl.
  - Remove unused *_MAXID for sysctls.
- Move CTL_MACHDEP sysctl definitions for m68k into m68k/include/cpu.h and
  use them on all m68k machines.

Revision 1.33.16.2: download - view: text, markup, annotated - select for diffs
Mon Jun 25 07:26:08 2018 UTC (6 years, 5 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.33.16.1: preferred, colored; branchpoint 1.33: preferred, colored
Changes since revision 1.33.16.1: +7 -8 lines
Sync with HEAD

Revision 1.35: download - view: text, markup, annotated - select for diffs
Sun Jun 10 17:54:51 2018 UTC (6 years, 5 months ago) by jdolecek
Branches: MAIN
CVS tags: phil-wifi-base, pgoyette-compat-0728, pgoyette-compat-0625
Branch point for: phil-wifi
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +7 -8 lines
convert the (still disabled) 'direct write' for pipes to use the
experimental PMAP_DIRECT if available; the direct code paths now survive
longer than the pmap_enter() variant, but still triggers panic during
build.sh tools run; remove some obsolete sysctls

add some XXXs to mark places which need attention to make this more stable

Note: the loan case is now actually significantly slower than the
non-loan case on MP systems, due to synchronous IPIs triggered by
marking the page read-only by uvm_loan(); this is being discussed
in the email thread
https://mail-index.netbsd.org/tech-kern/2018/05/21/msg023441.html

that is basically the same issue due to which loaning was disabled
for sosend()

Revision 1.33.16.1: download - view: text, markup, annotated - select for diffs
Mon May 21 04:36:17 2018 UTC (6 years, 6 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +1 -2 lines
Sync with HEAD

Revision 1.34: download - view: text, markup, annotated - select for diffs
Sat May 19 11:39:37 2018 UTC (6 years, 6 months ago) by jdolecek
Branches: MAIN
CVS tags: pgoyette-compat-0521
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +1 -2 lines
Remove emap support. Unfortunately it never got to state where it would be
used and usable, due to reliability and limited & complicated MD support.

Going forward, we need to concentrate on interface which do not map anything
into kernel in first place (such as direct map or KVA-less I/O), rather
than making those mappings cheaper to do.

Revision 1.32.22.1: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:39:20 2017 UTC (7 years ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.32: preferred, colored; next MAIN 1.33: preferred, colored
Changes since revision 1.32: +2 -1 lines
update from HEAD

Revision 1.32.40.1: download - view: text, markup, annotated - select for diffs
Sat Mar 19 11:30:39 2016 UTC (8 years, 8 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.32: preferred, colored; next MAIN 1.33: preferred, colored
Changes since revision 1.32: +2 -1 lines
Sync with HEAD

Revision 1.33: download - view: text, markup, annotated - select for diffs
Fri Jan 22 23:38:45 2016 UTC (8 years, 10 months ago) by dholland
Branches: MAIN
CVS tags: tls-maxphys-base-20171202, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-base, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, netbsd-8-base, netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: pgoyette-compat
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +2 -1 lines
Needs struct timespec.

Revision 1.24.4.3: download - view: text, markup, annotated - select for diffs
Thu Mar 11 15:04:42 2010 UTC (14 years, 9 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.24.4.2: preferred, colored; branchpoint 1.24: preferred, colored; next MAIN 1.25: preferred, colored
Changes since revision 1.24.4.2: +4 -3 lines
sync with head

Revision 1.32: download - view: text, markup, annotated - select for diffs
Sun Dec 20 09:36:06 2009 UTC (14 years, 11 months ago) by dsl
Branches: MAIN
CVS tags: yamt-pagecache-tag8, yamt-pagecache-base9, yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, yamt-pagecache, yamt-nfs-mp-base9, yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base7, uebayasi-xip-base6, uebayasi-xip-base5, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, uebayasi-xip-base1, uebayasi-xip-base, uebayasi-xip, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-uvmplock-nbase, rmind-uvmplock-base, rmind-uvmplock, rmind-smpnet-nbase, rmind-smpnet-base, rmind-smpnet, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, matt-mips64-premerge-20101231, khorben-n900, jruoho-x86intr-base, jruoho-x86intr, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10, jmcneill-usbmp-base, jmcneill-usbmp, jmcneill-audiomp3-base, jmcneill-audiomp3, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2, agc-symver-base, agc-symver
Branch point for: tls-maxphys, nick-nhusb
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +2 -1 lines
If a multithreaded app closes an fd while another thread is blocked in
read/write/accept, then the expectation is that the blocked thread will
exit and the close complete.
Since only one fd is affected, but many fd can refer to the same file,
the close code can only request the fs code unblock with ERESTART.
Fixed for pipes and sockets, ERESTART will only be generated after such
a close - so there should be no change for other programs.
Also rename fo_abort() to fo_restart() (this used to be fo_drain()).
Fixes PR/26567

Revision 1.31: download - view: text, markup, annotated - select for diffs
Sun Dec 13 18:27:02 2009 UTC (14 years, 11 months ago) by dsl
Branches: MAIN
CVS tags: matt-premerge-20091211
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +1 -2 lines
Revert most of the previous change.
Only one fd needs clobbering, not all fds that reference the pipe.
This may be what ad@ realised when he tried to add the same code to
sockets. Unfixes part of PR/26567.

Revision 1.30: download - view: text, markup, annotated - select for diffs
Sat Dec 12 21:28:04 2009 UTC (14 years, 11 months ago) by dsl
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +2 -1 lines
Add support for unblocking read/write when close called.
Fixes PR/26567 for pipes.
(NB ad backed out the fix for sockets)

Revision 1.29: download - view: text, markup, annotated - select for diffs
Thu Nov 26 16:18:37 2009 UTC (15 years ago) by pooka
Branches: MAIN
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +3 -3 lines
include prerequisite headers

Revision 1.25.2.2: download - view: text, markup, annotated - select for diffs
Thu Jul 23 23:32:56 2009 UTC (15 years, 4 months ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.25.2.1: preferred, colored; branchpoint 1.25: preferred, colored; next MAIN 1.26: preferred, colored
Changes since revision 1.25.2.1: +2 -1 lines
Sync with HEAD.

Revision 1.24.4.2: download - view: text, markup, annotated - select for diffs
Sat Jul 18 14:53:27 2009 UTC (15 years, 4 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.24.4.1: preferred, colored; branchpoint 1.24: preferred, colored
Changes since revision 1.24.4.1: +2 -1 lines
sync with head.

Revision 1.28: download - view: text, markup, annotated - select for diffs
Sun Jun 28 15:18:50 2009 UTC (15 years, 5 months ago) by rmind
Branches: MAIN
CVS tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, jymxensuspend-base, jym-xensuspend-nbase
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +2 -1 lines
Ephemeral mapping (emap) implementation.  Concept is based on the idea that
activity of other threads will perform the TLB flush for the processes using
emap as a side effect.  To track that, global and per-CPU generation numbers
are used.  This idea was suggested by Andrew Doran; various improvements to
it by me.  Notes:

- For now, zero-copy on pipe is not yet enabled.
- TCP socket code would likely need more work.
- Additional UVM loaning improvements are needed.

Proposed on <tech-kern>, silence there.
Quickly reviewed by <ad>.

Revision 1.25.2.1: download - view: text, markup, annotated - select for diffs
Wed May 13 17:23:03 2009 UTC (15 years, 6 months ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +4 -4 lines
Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

Revision 1.24.4.1: download - view: text, markup, annotated - select for diffs
Mon May 4 08:14:35 2009 UTC (15 years, 7 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +6 -5 lines
sync with head.

Revision 1.24.12.2: download - view: text, markup, annotated - select for diffs
Tue Apr 28 07:37:53 2009 UTC (15 years, 7 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.24.12.1: preferred, colored; branchpoint 1.24: preferred, colored; next MAIN 1.25: preferred, colored
Changes since revision 1.24.12.1: +4 -4 lines
Sync with HEAD.

Revision 1.27: download - view: text, markup, annotated - select for diffs
Sat Apr 11 15:46:18 2009 UTC (15 years, 8 months ago) by christos
Branches: MAIN
CVS tags: yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base, jym-xensuspend-base
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +2 -2 lines
rename ctime to btime for consistency.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Sat Apr 11 14:42:28 2009 UTC (15 years, 8 months ago) by christos
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +4 -4 lines
- maintain timespec internally.
- set birthtime too.

Revision 1.24.12.1: download - view: text, markup, annotated - select for diffs
Tue Mar 3 18:34:31 2009 UTC (15 years, 9 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +3 -2 lines
Sync with HEAD.

Revision 1.24.14.1: download - view: text, markup, annotated - select for diffs
Tue Feb 24 02:34:47 2009 UTC (15 years, 9 months ago) by snj
Branches: netbsd-5
CVS tags: netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b
Diff to: previous 1.24: preferred, colored; next MAIN 1.25: preferred, colored
Changes since revision 1.24: +3 -2 lines
Pull up following revision(s) (requested by enami/joerg in ticket #468):
	sys/kern/sys_pipe.c: revision 1.106
	sys/sys/pipe.h: revision 1.25
Apply pipe patch posted to tech-kern, slightly updated:
- Cache kva.
- Convert to use mutex_obj_alloc().
- Make better use of pool_cache.
Also:
Disable direct transfers for the moment. I believe there may be a bug that
can cause transfers to stall when switching between direct/buffered access.
I think this has most recently been run into on 'denver' but I have seen it
as far back as 3.1.
(As an aside, direct is a not a clear win on modern systems with large cache
and high TLB invalidation overhead. Particularly so on MP systems, although
micro benchmarks may report otherwise because they typically do not tax the
system. Anyone want to write a decent benchmark?)

Revision 1.25: download - view: text, markup, annotated - select for diffs
Sun Feb 1 18:23:04 2009 UTC (15 years, 10 months ago) by ad
Branches: MAIN
CVS tags: nick-hppapmap-base2
Branch point for: jym-xensuspend
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +3 -2 lines
Apply pipe patch posted to tech-kern, slightly updated:

- Cache kva.
- Convert to use mutex_obj_alloc().
- Make better use of pool_cache.

Also:

Disable direct transfers for the moment. I believe there may be a bug that
can cause transfers to stall when switching between direct/buffered access.
I think this has most recently been run into on 'denver' but I have seen it
as far back as 3.1.

(As an aside, direct is a not a clear win on modern systems with large cache
and high TLB invalidation overhead. Particularly so on MP systems, although
micro benchmarks may report otherwise because they typically do not tax the
system. Anyone want to write a decent benchmark?)

Revision 1.23.6.1: download - view: text, markup, annotated - select for diffs
Thu Apr 3 12:43:12 2008 UTC (16 years, 8 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.23: preferred, colored; next MAIN 1.24: preferred, colored
Changes since revision 1.23: +4 -2 lines
Sync with HEAD.

Revision 1.23.2.1: download - view: text, markup, annotated - select for diffs
Mon Mar 24 07:16:28 2008 UTC (16 years, 8 months ago) by keiichi
Branches: keiichi-mipv6
Diff to: previous 1.23: preferred, colored; next MAIN 1.24: preferred, colored
Changes since revision 1.23: +4 -2 lines
sync with head.

Revision 1.21.12.2: download - view: text, markup, annotated - select for diffs
Sun Mar 23 02:05:10 2008 UTC (16 years, 8 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.21.12.1: preferred, colored; branchpoint 1.21: preferred, colored; next MAIN 1.22: preferred, colored
Changes since revision 1.21.12.1: +4 -2 lines
sync with HEAD

Revision 1.16.2.4: download - view: text, markup, annotated - select for diffs
Mon Mar 17 09:15:47 2008 UTC (16 years, 8 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.16.2.3: preferred, colored; branchpoint 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16.2.3: +4 -2 lines
sync with head.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Fri Feb 29 12:04:48 2008 UTC (16 years, 9 months ago) by yamt
Branches: MAIN
CVS tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, yamt-nfs-mp-base2, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, netbsd-5-base, netbsd-5-0-RC2, netbsd-5-0-RC1, mjf-devfs2-base, matt-mips64-base2, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, hpcarm-cleanup-nbase, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, haad-dm, ad-socklock-base1, ad-audiomp2-base, ad-audiomp2
Branch point for: yamt-nfs-mp, nick-hppapmap, netbsd-5
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +4 -2 lines
fix a livelock with multiple readers by separating condvar.

Revision 1.21.18.1: download - view: text, markup, annotated - select for diffs
Mon Feb 18 21:07:23 2008 UTC (16 years, 9 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.21: preferred, colored; next MAIN 1.22: preferred, colored
Changes since revision 1.21: +2 -5 lines
Sync with HEAD.

Revision 1.16.2.3: download - view: text, markup, annotated - select for diffs
Mon Jan 21 09:47:56 2008 UTC (16 years, 10 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.16.2.2: preferred, colored; branchpoint 1.16: preferred, colored
Changes since revision 1.16.2.2: +2 -5 lines
sync with head

Revision 1.21.12.1: download - view: text, markup, annotated - select for diffs
Wed Jan 9 01:58:14 2008 UTC (16 years, 11 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +2 -5 lines
sync with HEAD

Revision 1.21.24.1: download - view: text, markup, annotated - select for diffs
Wed Jan 2 21:58:05 2008 UTC (16 years, 11 months ago) by bouyer
Branches: bouyer-xeni386
CVS tags: bouyer-xeni386-merge1
Diff to: previous 1.21: preferred, colored; next MAIN 1.22: preferred, colored
Changes since revision 1.21: +2 -5 lines
Sync with HEAD

Revision 1.23: download - view: text, markup, annotated - select for diffs
Wed Jan 2 19:16:00 2008 UTC (16 years, 11 months ago) by yamt
Branches: MAIN
CVS tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-armv6-base, hpcarm-cleanup-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Branch point for: mjf-devfs2, keiichi-mipv6
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +1 -4 lines
remove PIPE_WANTW, PIPE_WANTR and PIPE_WANTCLOSE.  cv_waiters is enough.
this fixes a deadlock between pipe_direct_write and pipeclose.

XXX this code should be simplified.
it's mostly pointless to have two struct pipes linked together,
esp. when we don't support bi-directional pipes.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Wed Dec 26 16:01:38 2007 UTC (16 years, 11 months ago) by ad
Branches: MAIN
CVS tags: vmlocking2-base3
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +2 -2 lines
Merge more changes from vmlocking2, mainly:

- Locking improvements.
- Use pool_cache for more items.

Revision 1.21.20.1: download - view: text, markup, annotated - select for diffs
Sat Dec 15 01:42:43 2007 UTC (16 years, 11 months ago) by ad
Branches: vmlocking2
Diff to: previous 1.21: preferred, colored; next MAIN 1.22: preferred, colored
Changes since revision 1.21: +2 -2 lines
Share a single mutex between both ends of the pipe and remove all the
crappy code that deals with locking in the wrong direction.

Revision 1.16.2.2: download - view: text, markup, annotated - select for diffs
Mon Sep 3 14:46:31 2007 UTC (17 years, 3 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.16.2.1: preferred, colored; branchpoint 1.16: preferred, colored
Changes since revision 1.16.2.1: +8 -8 lines
sync with head.

Revision 1.20.2.1: download - view: text, markup, annotated - select for diffs
Wed Jul 11 20:12:33 2007 UTC (17 years, 5 months ago) by mjf
Branches: mjf-ufs-trans
Diff to: previous 1.20: preferred, colored; next MAIN 1.21: preferred, colored
Changes since revision 1.20: +3 -2 lines
Sync with head.

Revision 1.18.26.2: download - view: text, markup, annotated - select for diffs
Sat Mar 24 14:56:15 2007 UTC (17 years, 8 months ago) by yamt
Branches: yamt-idlelwp
Diff to: previous 1.18.26.1: preferred, colored; branchpoint 1.18: preferred, colored; next MAIN 1.19: preferred, colored
Changes since revision 1.18.26.1: +7 -7 lines
sync with head.

Revision 1.19.2.1: download - view: text, markup, annotated - select for diffs
Tue Mar 13 16:52:05 2007 UTC (17 years, 9 months ago) by ad
Branches: vmlocking
Diff to: previous 1.19: preferred, colored; next MAIN 1.20: preferred, colored
Changes since revision 1.19: +7 -7 lines
Sync with head.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Mon Mar 12 21:31:03 2007 UTC (17 years, 9 months ago) by ad
Branches: MAIN
CVS tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-x86pmap, yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, yamt-idlelwp-base8, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, vmlocking-base, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, reinoud-bufcleanup, nick-csl-alignment-base5, nick-csl-alignment-base, nick-csl-alignment, mjf-ufs-trans-base, matt-mips64-base, matt-mips64, matt-armv6-prevmlocking, jmcneill-pm-base, jmcneill-pm, jmcneill-base, hpcarm-cleanup, cube-autoconf-base, cube-autoconf, bouyer-xenamd64-base2, bouyer-xenamd64-base, bouyer-xenamd64
Branch point for: vmlocking2, mjf-devfs, matt-armv6, bouyer-xeni386
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +3 -2 lines
Put a lock around pipe->pipe_peer.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Mon Mar 12 16:20:53 2007 UTC (17 years, 9 months ago) by ad
Branches: MAIN
Branch point for: mjf-ufs-trans
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +5 -6 lines
Use mutexes & condvars.

Revision 1.18.26.1: download - view: text, markup, annotated - select for diffs
Mon Mar 12 06:00:53 2007 UTC (17 years, 9 months ago) by rmind
Branches: yamt-idlelwp
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +2 -2 lines
Sync with HEAD.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Sun Mar 4 06:03:41 2007 UTC (17 years, 9 months ago) by christos
Branches: MAIN
Branch point for: vmlocking
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +2 -2 lines
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.

Revision 1.16.2.1: download - view: text, markup, annotated - select for diffs
Wed Jun 21 15:12:03 2006 UTC (18 years, 5 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +5 -2 lines
sync with head.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Sun Dec 11 12:25:20 2005 UTC (19 years ago) by christos
Branches: MAIN
CVS tags: yamt-uio_vmspace-base5, yamt-uio_vmspace, yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, yamt-splraiseipl-base2, yamt-splraiseipl-base, yamt-splraiseipl, yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, yamt-pdpolicy-base6, yamt-pdpolicy-base5, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, yamt-pdpolicy, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, simonb-timecounters-base, simonb-timecounters, simonb-timcounters-final, rpaulo-netinet-merge-pcb-base, rpaulo-netinet-merge-pcb, post-newlock2-merge, peter-altq-base, peter-altq, newlock2-nbase, newlock2-base, newlock2, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, matt-nb4-arm-base, matt-nb4-arm, gdamore-uart-base, gdamore-uart, elad-kernelauth-base, elad-kernelauth, chap-midi-nbase, chap-midi-base, chap-midi, ad-audiomp-base, ad-audiomp, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-idlelwp
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +1 -1 lines
merge ktrace-lwp.

Revision 1.13.2.6: download - view: text, markup, annotated - select for diffs
Thu Nov 10 14:12:12 2005 UTC (19 years, 1 month ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.13.2.5: preferred, colored; branchpoint 1.13: preferred, colored; next MAIN 1.14: preferred, colored
Changes since revision 1.13.2.5: +5 -2 lines
Sync with HEAD. Here we go again...

Revision 1.16.4.1: download - view: text, markup, annotated - select for diffs
Wed Nov 2 11:58:11 2005 UTC (19 years, 1 month ago) by yamt
Branches: yamt-vop
Diff to: previous 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16: +5 -2 lines
sync with head.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Sat Oct 29 12:31:07 2005 UTC (19 years, 1 month ago) by yamt
Branches: MAIN
CVS tags: yamt-vop-base3, yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base3, yamt-readahead-base2, yamt-readahead-base, yamt-readahead, ktrace-lwp-base
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +5 -2 lines
just use ltsleep rather than lockmgr + PCATCH with horrible timeout dance.

Revision 1.14.4.1: download - view: text, markup, annotated - select for diffs
Fri Apr 29 11:29:37 2005 UTC (19 years, 7 months ago) by kent
Branches: kent-audio2
Diff to: previous 1.14: preferred, colored; next MAIN 1.15: preferred, colored
Changes since revision 1.14: +3 -3 lines
sync with -current

Revision 1.13.2.5: download - view: text, markup, annotated - select for diffs
Fri Apr 1 14:32:11 2005 UTC (19 years, 8 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.13.2.4: preferred, colored; branchpoint 1.13: preferred, colored
Changes since revision 1.13.2.4: +2 -2 lines
Sync with HEAD.

Revision 1.14.6.2: download - view: text, markup, annotated - select for diffs
Sat Mar 19 08:36:52 2005 UTC (19 years, 8 months ago) by yamt
Branches: yamt-km
Diff to: previous 1.14.6.1: preferred, colored; branchpoint 1.14: preferred, colored; next MAIN 1.15: preferred, colored
Changes since revision 1.14.6.1: +2 -2 lines
sync with head.  xen and whitespace.  xen part is not finished.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Thu Mar 17 20:39:17 2005 UTC (19 years, 8 months ago) by kleink
Branches: MAIN
CVS tags: yamt-vop-base2, yamt-vop-base, yamt-km-base4, yamt-km-base3, thorpej-vnode-attr-base, thorpej-vnode-attr, kent-audio2-base
Branch point for: yamt-vop, yamt-lazymbuf
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +2 -2 lines
A couple of <sys/select.h>-related changes:
* Factor out struct selinfo and its header dependencies into its own header,
  <sys/selinfo.h>, to avoid namespace pollution.
* Include <sys/selinfo.h> in user-visible headers where necessary.

Revision 1.14.6.1: download - view: text, markup, annotated - select for diffs
Sat Feb 12 18:17:56 2005 UTC (19 years, 9 months ago) by yamt
Branches: yamt-km
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +2 -2 lines
sync with head.

Revision 1.13.2.4: download - view: text, markup, annotated - select for diffs
Fri Feb 4 11:48:06 2005 UTC (19 years, 10 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.13.2.3: preferred, colored; branchpoint 1.13: preferred, colored
Changes since revision 1.13.2.3: +2 -2 lines
Sync with HEAD.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Thu Feb 3 19:20:01 2005 UTC (19 years, 10 months ago) by perry
Branches: MAIN
CVS tags: yamt-km-base2, netbsd-3-base, netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0, netbsd-3
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +2 -2 lines
de-__P

Revision 1.13.2.3: download - view: text, markup, annotated - select for diffs
Tue Sep 21 13:38:48 2004 UTC (20 years, 2 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.13.2.2: preferred, colored; branchpoint 1.13: preferred, colored
Changes since revision 1.13.2.2: +1 -1 lines
Fix the sync with head I botched.

Revision 1.13.2.2: download - view: text, markup, annotated - select for diffs
Sat Sep 18 14:56:30 2004 UTC (20 years, 2 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.13.2.1: preferred, colored; branchpoint 1.13: preferred, colored
Changes since revision 1.13.2.1: +0 -0 lines
Sync with HEAD.

Revision 1.13.2.1: download - view: text, markup, annotated - select for diffs
Tue Aug 3 10:56:29 2004 UTC (20 years, 4 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +1 -2 lines
Sync with HEAD

Revision 1.14: download - view: text, markup, annotated - select for diffs
Sun Apr 25 16:42:43 2004 UTC (20 years, 7 months ago) by simonb
Branches: MAIN
CVS tags: yamt-km-base, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: yamt-km, kent-audio2
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +1 -2 lines
Initialise (most) pools from a link set instead of explicit calls
to pool_init.  Untouched pools are ones that either in arch-specific
code, or aren't initialiased during initial system startup.

 Convert struct session, ucred and lockf to pools.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Wed Feb 12 21:54:15 2003 UTC (21 years, 9 months ago) by pk
Branches: MAIN
CVS tags: netbsd-2-base, netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1, netbsd-2-0-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2-0, netbsd-2
Branch point for: ktrace-lwp
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +13 -58 lines
Make the pipe code mostly MP-safe.  There are a few unaddressed race
conditions at points where it's necessary to access both the up-stream
and down-stream parts of the bi-directional pipe data structure. These
are marked `XXXSMP' in the code.

Also, since the changes are pretty invasive, there little point in keeping
all the "#ifdef FreeBSD" code around; so all of that has been stripped out.

Revision 1.6.2.4: download - view: text, markup, annotated - select for diffs
Fri Sep 6 08:49:59 2002 UTC (22 years, 3 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.6.2.3: preferred, colored; next MAIN 1.7: preferred, colored
Changes since revision 1.6.2.3: +2 -2 lines
sync kqueue branch with HEAD

Revision 1.11.4.1: download - view: text, markup, annotated - select for diffs
Thu Aug 29 00:56:59 2002 UTC (22 years, 3 months ago) by gehenna
Branches: gehenna-devsw
Diff to: previous 1.11: preferred, colored; next MAIN 1.12: preferred, colored
Changes since revision 1.11: +2 -2 lines
catch up with -current.

Revision 1.3.2.6: download - view: text, markup, annotated - select for diffs
Tue Aug 27 23:48:25 2002 UTC (22 years, 3 months ago) by nathanw
Branches: nathanw_sa
CVS tags: nathanw_sa_end
Diff to: previous 1.3.2.5: preferred, colored; next MAIN 1.4: preferred, colored
Changes since revision 1.3.2.5: +2 -2 lines
Catch up to -current.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Fri Aug 16 10:32:12 2002 UTC (22 years, 3 months ago) by jdolecek
Branches: MAIN
CVS tags: nathanw_sa_before_merge, nathanw_sa_base, kqueue-beforemerge, kqueue-base, kqueue-aftermerge, gmcgarry_ucred_base, gmcgarry_ucred, gmcgarry_ctxsw_base, gmcgarry_ctxsw, gehenna-devsw-base, fvdl_fs64_base
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +2 -2 lines
use 'pid_t' for pipe_pgid, rather that 'gid_t'
this fixes the code in pipeselwakeup() to properly send signal to process group

Problem found by Anders Magnusson, using gcc 3.2 with pdp-10 target.

Revision 1.3.2.5: download - view: text, markup, annotated - select for diffs
Mon Apr 1 07:49:11 2002 UTC (22 years, 8 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.4: preferred, colored
Changes since revision 1.3.2.4: +24 -5 lines
Catch up to -current.
(CVS: It's not just a program. It's an adventure!)

Revision 1.6.2.3: download - view: text, markup, annotated - select for diffs
Sat Mar 16 16:02:22 2002 UTC (22 years, 8 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.6.2.2: preferred, colored
Changes since revision 1.6.2.2: +27 -5 lines
Catch up with -current.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Wed Mar 13 20:51:37 2002 UTC (22 years, 9 months ago) by jdolecek
Branches: MAIN
CVS tags: netbsd-1-6-base, netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1, netbsd-1-6-PATCH002-RELEASE, netbsd-1-6-PATCH002-RC4, netbsd-1-6-PATCH002-RC3, netbsd-1-6-PATCH002-RC2, netbsd-1-6-PATCH002-RC1, netbsd-1-6-PATCH002, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001, netbsd-1-6, eeh-devprop-base, eeh-devprop
Branch point for: gehenna-devsw
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +2 -0 lines
add NetBSD RCS tag

Revision 1.10: download - view: text, markup, annotated - select for diffs
Wed Mar 13 20:50:00 2002 UTC (22 years, 9 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +22 -5 lines
Merge in FreeBSD rev. 1.18 - MP changes + rename of PIPE_LOCK to PIPE_LOCKFL
XXXSMP the MP hooks are unused on NetBSD for now

put NetBSD kernel-only parts into #ifdef _KERNEL

Revision 1.1.1.2 (vendor branch): download - view: text, markup, annotated - select for diffs
Wed Mar 13 19:13:55 2002 UTC (22 years, 9 months ago) by jdolecek
Branches: FREEBSD
CVS tags: FREEBSD-20020309
Diff to: previous 1.1.1.1: preferred, colored
Changes since revision 1.1.1.1: +9 -2 lines
Import updated <sys/pipe.h> from FreeBSD rev. 1.18.
The only change is MP stuff (FreeBSD specific).

Revision 1.6.2.2: download - view: text, markup, annotated - select for diffs
Thu Jan 10 20:04:45 2002 UTC (22 years, 11 months ago) by thorpej
Branches: kqueue
Diff to: previous 1.6.2.1: preferred, colored
Changes since revision 1.6.2.1: +1 -5 lines
Sync kqueue branch with -current.

Revision 1.3.2.4: download - view: text, markup, annotated - select for diffs
Wed Nov 14 19:18:51 2001 UTC (23 years ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.3: preferred, colored
Changes since revision 1.3.2.3: +1 -5 lines
Catch up to -current.

Revision 1.7.4.1: download - view: text, markup, annotated - select for diffs
Mon Nov 12 21:19:41 2001 UTC (23 years, 1 month ago) by thorpej
Branches: thorpej-mips-cache
Diff to: previous 1.7: preferred, colored; next MAIN 1.8: preferred, colored
Changes since revision 1.7: +1 -5 lines
Sync the thorpej-mips-cache branch with -current.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Tue Nov 6 07:30:14 2001 UTC (23 years, 1 month ago) by chs
Branches: MAIN
CVS tags: thorpej-mips-cache-base, newlock-base, newlock, ifpoll-base
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +1 -1 lines
use pmap_kenter_pa() instead of pmap_enter(), this is required for
pages loaned to the kernel.  this implies that we also need to
call pmap_kremove() before uvm_km_free().

other general cleanup:  remove argument names from prototypes,
rename some variables, etc.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Sun Oct 28 20:27:55 2001 UTC (23 years, 1 month ago) by jdolecek
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +0 -4 lines
Use hardcoded 8192 for PIPE_MINDIRECT, rather than being dependant
on PAGE_SIZE. The overhead of setting up Page Loan is pretty much constant
irregardless of page size, so it makes more sense to use fixed constant.

According to hbench, the overhead of Page Loan setup is still significantly
bigger than the performance gain for 4096 byte buffers on i386
(PIII/600Mhz). The difference is smaller on 386DX, but Page Loan is
still not faster for this case.

Also, there is some other code out there which expects 4KB writes
to not block even for 'blocking' write, since it works this
way on some other operating systems.
Partially addresses kern/14246 by Andreas Persson.

Revision 1.3.2.3: download - view: text, markup, annotated - select for diffs
Fri Aug 24 00:13:07 2001 UTC (23 years, 3 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.2: preferred, colored
Changes since revision 1.3.2.2: +26 -6 lines
Catch up with -current.

Revision 1.6.2.1: download - view: text, markup, annotated - select for diffs
Fri Aug 3 04:14:05 2001 UTC (23 years, 4 months ago) by lukem
Branches: kqueue
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +1 -1 lines
update to -current

Revision 1.7: download - view: text, markup, annotated - select for diffs
Mon Jul 23 19:34:36 2001 UTC (23 years, 4 months ago) by jdolecek
Branches: MAIN
CVS tags: thorpej-devvp-base3, thorpej-devvp-base2, thorpej-devvp-base, thorpej-devvp, pre-chs-ubcperf, post-chs-ubcperf
Branch point for: thorpej-mips-cache
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +1 -1 lines
define BIG_PIPE_SIZE value using PIPE_SIZE

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Jul 2 20:54:26 2001 UTC (23 years, 5 months ago) by jdolecek
Branches: MAIN
Branch point for: kqueue
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +3 -0 lines
#include <sys/select> implicitly in !_KERNEL case

Revision 1.5: download - view: text, markup, annotated - select for diffs
Mon Jul 2 20:48:31 2001 UTC (23 years, 5 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +21 -1 lines
Move CTL_PIPE_NAMES and KERN_PIPE_* from <sys/sysctl.h> to <sys/pipe.h>

Revision 1.4: download - view: text, markup, annotated - select for diffs
Mon Jul 2 20:44:17 2001 UTC (23 years, 5 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +0 -4 lines
g/c PIPE_MOREW

Revision 1.3.2.2: download - view: text, markup, annotated - select for diffs
Thu Jun 21 20:09:50 2001 UTC (23 years, 5 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.3.2.1: preferred, colored
Changes since revision 1.3.2.1: +154 -0 lines
Catch up to -current.

Revision 1.3.2.1
Thu Jun 21 19:08:37 2001 UTC (23 years, 5 months ago) by nathanw
Branches: nathanw_sa
FILE REMOVED
Changes since revision 1.3: +0 -155 lines
file pipe.h was added on branch nathanw_sa on 2001-06-21 20:09:50 +0000

Revision 1.3: download - view: text, markup, annotated - select for diffs
Thu Jun 21 19:08:37 2001 UTC (23 years, 5 months ago) by jdolecek
Branches: MAIN
Branch point for: nathanw_sa
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +1 -0 lines
Move prototype of sysctl_dopipe() from <sys/sysctl.h> to <sys/pipe.h>
and adjust kern/kern_sysctl.c accordingly.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sat Jun 16 12:00:03 2001 UTC (23 years, 5 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +50 -7 lines
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.

Revision 1.1.1.1 (vendor branch): download - view: text, markup, annotated - select for diffs
Sat Jun 16 09:23:11 2001 UTC (23 years, 5 months ago) by jdolecek
Branches: FREEBSD
CVS tags: FREEBSD-20010109
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +0 -0 lines
Import FreeBSD sys/pipe.h rev 1.17 for reference (this was used as a base
for the NetBSD port).

Revision 1.1: download - view: text, markup, annotated - select for diffs
Sat Jun 16 09:23:11 2001 UTC (23 years, 5 months ago) by jdolecek
Branches: MAIN
Initial revision

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>