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


Default branch: MAIN


Revision 1.42 / (download) - annotate - [select for diffs], Thu Nov 2 10:31:55 2023 UTC (5 months, 2 weeks ago) by martin
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, HEAD
Changes since 1.41: +23 -23 lines
Diff to previous 1.41 (colored)

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) - annotate - [select for diffs], Tue Oct 17 10:28:06 2023 UTC (6 months ago) by riastradh
Branch: MAIN
Changes since 1.40: +12 -12 lines
Diff to previous 1.40 (colored)

sys/pipe.h: #define<tab>

No functional change intended.

Revision 1.40 / (download) - annotate - [select for diffs], Fri Oct 13 19:07:09 2023 UTC (6 months ago) by ad
Branch: MAIN
Changes since 1.39: +23 -23 lines
Diff to previous 1.39 (colored)

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) - annotate - [select for diffs], Wed Oct 4 22:19:58 2023 UTC (6 months, 1 week ago) by ad
Branch: MAIN
Changes since 1.38: +2 -3 lines
Diff to previous 1.38 (colored)

pipe->pipe_waiters isn't needed on NetBSD, kernel condvars do this for free.

Revision 1.37.2.1 / (download) - annotate - [select for diffs], Sat Apr 3 22:29:03 2021 UTC (3 years ago) by thorpej
Branch: thorpej-futex
Changes since 1.37: +3 -3 lines
Diff to previous 1.37 (colored) next main 1.38 (colored)

Sync with HEAD.

Revision 1.38 / (download) - annotate - [select for diffs], Mon Jan 25 19:21:11 2021 UTC (3 years, 2 months ago) by dholland
Branch: 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
Changes since 1.37: +3 -3 lines
Diff to previous 1.37 (colored)

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) - annotate - [select for diffs], Thu Jun 25 14:22:19 2020 UTC (3 years, 9 months ago) by jdolecek
Branch: MAIN
Branch point for: thorpej-futex
Changes since 1.36: +1 -15 lines
Diff to previous 1.36 (colored)

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) - annotate - [select for diffs], Mon Jun 10 22:09:57 2019 UTC (4 years, 10 months ago) by christos
Branch: phil-wifi
Changes since 1.35: +1 -11 lines
Diff to previous 1.35 (colored) next main 1.36 (colored)

Sync with HEAD

Revision 1.33.16.3 / (download) - annotate - [select for diffs], Thu Sep 6 06:56:47 2018 UTC (5 years, 7 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.33.16.2: +1 -11 lines
Diff to previous 1.33.16.2 (colored) to branchpoint 1.33 (colored) next main 1.34 (colored)

Sync with HEAD

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

Revision 1.36 / (download) - annotate - [select for diffs], Wed Aug 22 01:05:24 2018 UTC (5 years, 7 months ago) by msaitoh
Branch: 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-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
Changes since 1.35: +1 -11 lines
Diff to previous 1.35 (colored)

- 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) - annotate - [select for diffs], Mon Jun 25 07:26:08 2018 UTC (5 years, 9 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.33.16.1: +7 -8 lines
Diff to previous 1.33.16.1 (colored) to branchpoint 1.33 (colored)

Sync with HEAD

Revision 1.35 / (download) - annotate - [select for diffs], Sun Jun 10 17:54:51 2018 UTC (5 years, 10 months ago) by jdolecek
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-0728, pgoyette-compat-0625
Branch point for: phil-wifi
Changes since 1.34: +7 -8 lines
Diff to previous 1.34 (colored)

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) - annotate - [select for diffs], Mon May 21 04:36:17 2018 UTC (5 years, 10 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.33: +1 -2 lines
Diff to previous 1.33 (colored)

Sync with HEAD

Revision 1.34 / (download) - annotate - [select for diffs], Sat May 19 11:39:37 2018 UTC (5 years, 11 months ago) by jdolecek
Branch: MAIN
CVS Tags: pgoyette-compat-0521
Changes since 1.33: +1 -2 lines
Diff to previous 1.33 (colored)

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) - annotate - [select for diffs], Sun Dec 3 11:39:20 2017 UTC (6 years, 4 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.32: +2 -1 lines
Diff to previous 1.32 (colored) next main 1.33 (colored)

update from HEAD

Revision 1.32.40.1 / (download) - annotate - [select for diffs], Sat Mar 19 11:30:39 2016 UTC (8 years, 1 month ago) by skrll
Branch: nick-nhusb
Changes since 1.32: +2 -1 lines
Diff to previous 1.32 (colored) next main 1.33 (colored)

Sync with HEAD

Revision 1.33 / (download) - annotate - [select for diffs], Fri Jan 22 23:38:45 2016 UTC (8 years, 2 months ago) by dholland
Branch: 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-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
Changes since 1.32: +2 -1 lines
Diff to previous 1.32 (colored)

Needs struct timespec.

Revision 1.24.4.3 / (download) - annotate - [select for diffs], Thu Mar 11 15:04:42 2010 UTC (14 years, 1 month ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.24.4.2: +4 -3 lines
Diff to previous 1.24.4.2 (colored) to branchpoint 1.24 (colored) next main 1.25 (colored)

sync with head

Revision 1.32 / (download) - annotate - [select for diffs], Sun Dec 20 09:36:06 2009 UTC (14 years, 4 months ago) by dsl
Branch: 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
Changes since 1.31: +2 -1 lines
Diff to previous 1.31 (colored)

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) - annotate - [select for diffs], Sun Dec 13 18:27:02 2009 UTC (14 years, 4 months ago) by dsl
Branch: MAIN
CVS Tags: matt-premerge-20091211
Changes since 1.30: +1 -2 lines
Diff to previous 1.30 (colored)

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) - annotate - [select for diffs], Sat Dec 12 21:28:04 2009 UTC (14 years, 4 months ago) by dsl
Branch: MAIN
Changes since 1.29: +2 -1 lines
Diff to previous 1.29 (colored)

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) - annotate - [select for diffs], Thu Nov 26 16:18:37 2009 UTC (14 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.28: +3 -3 lines
Diff to previous 1.28 (colored)

include prerequisite headers

Revision 1.25.2.2 / (download) - annotate - [select for diffs], Thu Jul 23 23:32:56 2009 UTC (14 years, 8 months ago) by jym
Branch: jym-xensuspend
Changes since 1.25.2.1: +2 -1 lines
Diff to previous 1.25.2.1 (colored) to branchpoint 1.25 (colored) next main 1.26 (colored)

Sync with HEAD.

Revision 1.24.4.2 / (download) - annotate - [select for diffs], Sat Jul 18 14:53:27 2009 UTC (14 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.24.4.1: +2 -1 lines
Diff to previous 1.24.4.1 (colored) to branchpoint 1.24 (colored)

sync with head.

Revision 1.28 / (download) - annotate - [select for diffs], Sun Jun 28 15:18:50 2009 UTC (14 years, 9 months ago) by rmind
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, jymxensuspend-base, jym-xensuspend-nbase
Changes since 1.27: +2 -1 lines
Diff to previous 1.27 (colored)

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) - annotate - [select for diffs], Wed May 13 17:23:03 2009 UTC (14 years, 11 months ago) by jym
Branch: jym-xensuspend
Changes since 1.25: +4 -4 lines
Diff to previous 1.25 (colored)

Sync with HEAD.

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

Revision 1.24.4.1 / (download) - annotate - [select for diffs], Mon May 4 08:14:35 2009 UTC (14 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.24: +6 -5 lines
Diff to previous 1.24 (colored)

sync with head.

Revision 1.24.12.2 / (download) - annotate - [select for diffs], Tue Apr 28 07:37:53 2009 UTC (14 years, 11 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.24.12.1: +4 -4 lines
Diff to previous 1.24.12.1 (colored) to branchpoint 1.24 (colored) next main 1.25 (colored)

Sync with HEAD.

Revision 1.27 / (download) - annotate - [select for diffs], Sat Apr 11 15:46:18 2009 UTC (15 years ago) by christos
Branch: 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
Changes since 1.26: +2 -2 lines
Diff to previous 1.26 (colored)

rename ctime to btime for consistency.

Revision 1.26 / (download) - annotate - [select for diffs], Sat Apr 11 14:42:28 2009 UTC (15 years ago) by christos
Branch: MAIN
Changes since 1.25: +4 -4 lines
Diff to previous 1.25 (colored)

- maintain timespec internally.
- set birthtime too.

Revision 1.24.12.1 / (download) - annotate - [select for diffs], Tue Mar 3 18:34:31 2009 UTC (15 years, 1 month ago) by skrll
Branch: nick-hppapmap
Changes since 1.24: +3 -2 lines
Diff to previous 1.24 (colored)

Sync with HEAD.

Revision 1.24.14.1 / (download) - annotate - [select for diffs], Tue Feb 24 02:34:47 2009 UTC (15 years, 1 month ago) by snj
Branch: 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
Changes since 1.24: +3 -2 lines
Diff to previous 1.24 (colored) next main 1.25 (colored)

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) - annotate - [select for diffs], Sun Feb 1 18:23:04 2009 UTC (15 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: nick-hppapmap-base2
Branch point for: jym-xensuspend
Changes since 1.24: +3 -2 lines
Diff to previous 1.24 (colored)

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) - annotate - [select for diffs], Thu Apr 3 12:43:12 2008 UTC (16 years ago) by mjf
Branch: mjf-devfs2
Changes since 1.23: +4 -2 lines
Diff to previous 1.23 (colored) next main 1.24 (colored)

Sync with HEAD.

Revision 1.23.2.1 / (download) - annotate - [select for diffs], Mon Mar 24 07:16:28 2008 UTC (16 years ago) by keiichi
Branch: keiichi-mipv6
Changes since 1.23: +4 -2 lines
Diff to previous 1.23 (colored) next main 1.24 (colored)

sync with head.

Revision 1.21.12.2 / (download) - annotate - [select for diffs], Sun Mar 23 02:05:10 2008 UTC (16 years ago) by matt
Branch: matt-armv6
Changes since 1.21.12.1: +4 -2 lines
Diff to previous 1.21.12.1 (colored) to branchpoint 1.21 (colored) next main 1.22 (colored)

sync with HEAD

Revision 1.16.2.4 / (download) - annotate - [select for diffs], Mon Mar 17 09:15:47 2008 UTC (16 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16.2.3: +4 -2 lines
Diff to previous 1.16.2.3 (colored) to branchpoint 1.16 (colored) next main 1.17 (colored)

sync with head.

Revision 1.24 / (download) - annotate - [select for diffs], Fri Feb 29 12:04:48 2008 UTC (16 years, 1 month ago) by yamt
Branch: 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
Changes since 1.23: +4 -2 lines
Diff to previous 1.23 (colored)

fix a livelock with multiple readers by separating condvar.

Revision 1.21.18.1 / (download) - annotate - [select for diffs], Mon Feb 18 21:07:23 2008 UTC (16 years, 2 months ago) by mjf
Branch: mjf-devfs
Changes since 1.21: +2 -5 lines
Diff to previous 1.21 (colored) next main 1.22 (colored)

Sync with HEAD.

Revision 1.16.2.3 / (download) - annotate - [select for diffs], Mon Jan 21 09:47:56 2008 UTC (16 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16.2.2: +2 -5 lines
Diff to previous 1.16.2.2 (colored) to branchpoint 1.16 (colored)

sync with head

Revision 1.21.12.1 / (download) - annotate - [select for diffs], Wed Jan 9 01:58:14 2008 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.21: +2 -5 lines
Diff to previous 1.21 (colored)

sync with HEAD

Revision 1.21.24.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:58:05 2008 UTC (16 years, 3 months ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.21: +2 -5 lines
Diff to previous 1.21 (colored) next main 1.22 (colored)

Sync with HEAD

Revision 1.23 / (download) - annotate - [select for diffs], Wed Jan 2 19:16:00 2008 UTC (16 years, 3 months ago) by yamt
Branch: 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
Changes since 1.22: +1 -4 lines
Diff to previous 1.22 (colored)

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) - annotate - [select for diffs], Wed Dec 26 16:01:38 2007 UTC (16 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: vmlocking2-base3
Changes since 1.21: +2 -2 lines
Diff to previous 1.21 (colored)

Merge more changes from vmlocking2, mainly:

- Locking improvements.
- Use pool_cache for more items.

Revision 1.21.20.1 / (download) - annotate - [select for diffs], Sat Dec 15 01:42:43 2007 UTC (16 years, 4 months ago) by ad
Branch: vmlocking2
Changes since 1.21: +2 -2 lines
Diff to previous 1.21 (colored) next main 1.22 (colored)

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) - annotate - [select for diffs], Mon Sep 3 14:46:31 2007 UTC (16 years, 7 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16.2.1: +8 -8 lines
Diff to previous 1.16.2.1 (colored) to branchpoint 1.16 (colored)

sync with head.

Revision 1.20.2.1 / (download) - annotate - [select for diffs], Wed Jul 11 20:12:33 2007 UTC (16 years, 9 months ago) by mjf
Branch: mjf-ufs-trans
Changes since 1.20: +3 -2 lines
Diff to previous 1.20 (colored) next main 1.21 (colored)

Sync with head.

Revision 1.18.26.2 / (download) - annotate - [select for diffs], Sat Mar 24 14:56:15 2007 UTC (17 years ago) by yamt
Branch: yamt-idlelwp
Changes since 1.18.26.1: +7 -7 lines
Diff to previous 1.18.26.1 (colored) to branchpoint 1.18 (colored) next main 1.19 (colored)

sync with head.

Revision 1.19.2.1 / (download) - annotate - [select for diffs], Tue Mar 13 16:52:05 2007 UTC (17 years, 1 month ago) by ad
Branch: vmlocking
Changes since 1.19: +7 -7 lines
Diff to previous 1.19 (colored) next main 1.20 (colored)

Sync with head.

Revision 1.21 / (download) - annotate - [select for diffs], Mon Mar 12 21:31:03 2007 UTC (17 years, 1 month ago) by ad
Branch: 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
Changes since 1.20: +3 -2 lines
Diff to previous 1.20 (colored)

Put a lock around pipe->pipe_peer.

Revision 1.20 / (download) - annotate - [select for diffs], Mon Mar 12 16:20:53 2007 UTC (17 years, 1 month ago) by ad
Branch: MAIN
Branch point for: mjf-ufs-trans
Changes since 1.19: +5 -6 lines
Diff to previous 1.19 (colored)

Use mutexes & condvars.

Revision 1.18.26.1 / (download) - annotate - [select for diffs], Mon Mar 12 06:00:53 2007 UTC (17 years, 1 month ago) by rmind
Branch: yamt-idlelwp
Changes since 1.18: +2 -2 lines
Diff to previous 1.18 (colored)

Sync with HEAD.

Revision 1.19 / (download) - annotate - [select for diffs], Sun Mar 4 06:03:41 2007 UTC (17 years, 1 month ago) by christos
Branch: MAIN
Branch point for: vmlocking
Changes since 1.18: +2 -2 lines
Diff to previous 1.18 (colored)

Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.

Revision 1.16.2.1 / (download) - annotate - [select for diffs], Wed Jun 21 15:12:03 2006 UTC (17 years, 10 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.16: +5 -2 lines
Diff to previous 1.16 (colored)

sync with head.

Revision 1.18 / (download) - annotate - [select for diffs], Sun Dec 11 12:25:20 2005 UTC (18 years, 4 months ago) by christos
Branch: 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
Changes since 1.17: +1 -1 lines
Diff to previous 1.17 (colored)

merge ktrace-lwp.

Revision 1.13.2.6 / (download) - annotate - [select for diffs], Thu Nov 10 14:12:12 2005 UTC (18 years, 5 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.13.2.5: +5 -2 lines
Diff to previous 1.13.2.5 (colored) to branchpoint 1.13 (colored) next main 1.14 (colored)

Sync with HEAD. Here we go again...

Revision 1.16.4.1 / (download) - annotate - [select for diffs], Wed Nov 2 11:58:11 2005 UTC (18 years, 5 months ago) by yamt
Branch: yamt-vop
Changes since 1.16: +5 -2 lines
Diff to previous 1.16 (colored) next main 1.17 (colored)

sync with head.

Revision 1.17 / (download) - annotate - [select for diffs], Sat Oct 29 12:31:07 2005 UTC (18 years, 5 months ago) by yamt
Branch: 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
Changes since 1.16: +5 -2 lines
Diff to previous 1.16 (colored)

just use ltsleep rather than lockmgr + PCATCH with horrible timeout dance.

Revision 1.14.4.1 / (download) - annotate - [select for diffs], Fri Apr 29 11:29:37 2005 UTC (18 years, 11 months ago) by kent
Branch: kent-audio2
Changes since 1.14: +3 -3 lines
Diff to previous 1.14 (colored) next main 1.15 (colored)

sync with -current

Revision 1.13.2.5 / (download) - annotate - [select for diffs], Fri Apr 1 14:32:11 2005 UTC (19 years ago) by skrll
Branch: ktrace-lwp
Changes since 1.13.2.4: +2 -2 lines
Diff to previous 1.13.2.4 (colored) to branchpoint 1.13 (colored)

Sync with HEAD.

Revision 1.14.6.2 / (download) - annotate - [select for diffs], Sat Mar 19 08:36:52 2005 UTC (19 years, 1 month ago) by yamt
Branch: yamt-km
Changes since 1.14.6.1: +2 -2 lines
Diff to previous 1.14.6.1 (colored) to branchpoint 1.14 (colored) next main 1.15 (colored)

sync with head.  xen and whitespace.  xen part is not finished.

Revision 1.16 / (download) - annotate - [select for diffs], Thu Mar 17 20:39:17 2005 UTC (19 years, 1 month ago) by kleink
Branch: 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
Changes since 1.15: +2 -2 lines
Diff to previous 1.15 (colored)

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) - annotate - [select for diffs], Sat Feb 12 18:17:56 2005 UTC (19 years, 2 months ago) by yamt
Branch: yamt-km
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)

sync with head.

Revision 1.13.2.4 / (download) - annotate - [select for diffs], Fri Feb 4 11:48:06 2005 UTC (19 years, 2 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.13.2.3: +2 -2 lines
Diff to previous 1.13.2.3 (colored) to branchpoint 1.13 (colored)

Sync with HEAD.

Revision 1.15 / (download) - annotate - [select for diffs], Thu Feb 3 19:20:01 2005 UTC (19 years, 2 months ago) by perry
Branch: 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
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)

de-__P

Revision 1.13.2.3 / (download) - annotate - [select for diffs], Tue Sep 21 13:38:48 2004 UTC (19 years, 6 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.13.2.2: +1 -1 lines
Diff to previous 1.13.2.2 (colored) to branchpoint 1.13 (colored)

Fix the sync with head I botched.

Revision 1.13.2.2 / (download) - annotate - [select for diffs], Sat Sep 18 14:56:30 2004 UTC (19 years, 7 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.13.2.1: +0 -0 lines
Diff to previous 1.13.2.1 (colored) to branchpoint 1.13 (colored)

Sync with HEAD.

Revision 1.13.2.1 / (download) - annotate - [select for diffs], Tue Aug 3 10:56:29 2004 UTC (19 years, 8 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.13: +1 -2 lines
Diff to previous 1.13 (colored)

Sync with HEAD

Revision 1.14 / (download) - annotate - [select for diffs], Sun Apr 25 16:42:43 2004 UTC (19 years, 11 months ago) by simonb
Branch: MAIN
CVS Tags: yamt-km-base, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: yamt-km, kent-audio2
Changes since 1.13: +1 -2 lines
Diff to previous 1.13 (colored)

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) - annotate - [select for diffs], Wed Feb 12 21:54:15 2003 UTC (21 years, 2 months ago) by pk
Branch: 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
Changes since 1.12: +13 -58 lines
Diff to previous 1.12 (colored)

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) - annotate - [select for diffs], Fri Sep 6 08:49:59 2002 UTC (21 years, 7 months ago) by jdolecek
Branch: kqueue
Changes since 1.6.2.3: +2 -2 lines
Diff to previous 1.6.2.3 (colored) next main 1.7 (colored)

sync kqueue branch with HEAD

Revision 1.11.4.1 / (download) - annotate - [select for diffs], Thu Aug 29 00:56:59 2002 UTC (21 years, 7 months ago) by gehenna
Branch: gehenna-devsw
Changes since 1.11: +2 -2 lines
Diff to previous 1.11 (colored) next main 1.12 (colored)

catch up with -current.

Revision 1.3.2.6 / (download) - annotate - [select for diffs], Tue Aug 27 23:48:25 2002 UTC (21 years, 7 months ago) by nathanw
Branch: nathanw_sa
CVS Tags: nathanw_sa_end
Changes since 1.3.2.5: +2 -2 lines
Diff to previous 1.3.2.5 (colored) next main 1.4 (colored)

Catch up to -current.

Revision 1.12 / (download) - annotate - [select for diffs], Fri Aug 16 10:32:12 2002 UTC (21 years, 8 months ago) by jdolecek
Branch: 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
Changes since 1.11: +2 -2 lines
Diff to previous 1.11 (colored)

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) - annotate - [select for diffs], Mon Apr 1 07:49:11 2002 UTC (22 years ago) by nathanw
Branch: nathanw_sa
Changes since 1.3.2.4: +24 -5 lines
Diff to previous 1.3.2.4 (colored)

Catch up to -current.
(CVS: It's not just a program. It's an adventure!)

Revision 1.6.2.3 / (download) - annotate - [select for diffs], Sat Mar 16 16:02:22 2002 UTC (22 years, 1 month ago) by jdolecek
Branch: kqueue
Changes since 1.6.2.2: +27 -5 lines
Diff to previous 1.6.2.2 (colored)

Catch up with -current.

Revision 1.11 / (download) - annotate - [select for diffs], Wed Mar 13 20:51:37 2002 UTC (22 years, 1 month ago) by jdolecek
Branch: 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
Changes since 1.10: +2 -0 lines
Diff to previous 1.10 (colored)

add NetBSD RCS tag

Revision 1.10 / (download) - annotate - [select for diffs], Wed Mar 13 20:50:00 2002 UTC (22 years, 1 month ago) by jdolecek
Branch: MAIN
Changes since 1.9: +22 -5 lines
Diff to previous 1.9 (colored)

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 / (download) - annotate - [select for diffs] (vendor branch), Wed Mar 13 19:13:55 2002 UTC (22 years, 1 month ago) by jdolecek
Branch: FREEBSD
CVS Tags: FREEBSD-20020309
Changes since 1.1.1.1: +9 -2 lines
Diff to previous 1.1.1.1 (colored)

Import updated <sys/pipe.h> from FreeBSD rev. 1.18.
The only change is MP stuff (FreeBSD specific).

Revision 1.6.2.2 / (download) - annotate - [select for diffs], Thu Jan 10 20:04:45 2002 UTC (22 years, 3 months ago) by thorpej
Branch: kqueue
Changes since 1.6.2.1: +1 -5 lines
Diff to previous 1.6.2.1 (colored)

Sync kqueue branch with -current.

Revision 1.3.2.4 / (download) - annotate - [select for diffs], Wed Nov 14 19:18:51 2001 UTC (22 years, 5 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.3.2.3: +1 -5 lines
Diff to previous 1.3.2.3 (colored)

Catch up to -current.

Revision 1.7.4.1 / (download) - annotate - [select for diffs], Mon Nov 12 21:19:41 2001 UTC (22 years, 5 months ago) by thorpej
Branch: thorpej-mips-cache
Changes since 1.7: +1 -5 lines
Diff to previous 1.7 (colored) next main 1.8 (colored)

Sync the thorpej-mips-cache branch with -current.

Revision 1.9 / (download) - annotate - [select for diffs], Tue Nov 6 07:30:14 2001 UTC (22 years, 5 months ago) by chs
Branch: MAIN
CVS Tags: thorpej-mips-cache-base, newlock-base, newlock, ifpoll-base
Changes since 1.8: +1 -1 lines
Diff to previous 1.8 (colored)

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) - annotate - [select for diffs], Sun Oct 28 20:27:55 2001 UTC (22 years, 5 months ago) by jdolecek
Branch: MAIN
Changes since 1.7: +0 -4 lines
Diff to previous 1.7 (colored)

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) - annotate - [select for diffs], Fri Aug 24 00:13:07 2001 UTC (22 years, 7 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.3.2.2: +26 -6 lines
Diff to previous 1.3.2.2 (colored)

Catch up with -current.

Revision 1.6.2.1 / (download) - annotate - [select for diffs], Fri Aug 3 04:14:05 2001 UTC (22 years, 8 months ago) by lukem
Branch: kqueue
Changes since 1.6: +1 -1 lines
Diff to previous 1.6 (colored)

update to -current

Revision 1.7 / (download) - annotate - [select for diffs], Mon Jul 23 19:34:36 2001 UTC (22 years, 8 months ago) by jdolecek
Branch: 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
Changes since 1.6: +1 -1 lines
Diff to previous 1.6 (colored)

define BIG_PIPE_SIZE value using PIPE_SIZE

Revision 1.6 / (download) - annotate - [select for diffs], Mon Jul 2 20:54:26 2001 UTC (22 years, 9 months ago) by jdolecek
Branch: MAIN
Branch point for: kqueue
Changes since 1.5: +3 -0 lines
Diff to previous 1.5 (colored)

#include <sys/select> implicitly in !_KERNEL case

Revision 1.5 / (download) - annotate - [select for diffs], Mon Jul 2 20:48:31 2001 UTC (22 years, 9 months ago) by jdolecek
Branch: MAIN
Changes since 1.4: +21 -1 lines
Diff to previous 1.4 (colored)

Move CTL_PIPE_NAMES and KERN_PIPE_* from <sys/sysctl.h> to <sys/pipe.h>

Revision 1.4 / (download) - annotate - [select for diffs], Mon Jul 2 20:44:17 2001 UTC (22 years, 9 months ago) by jdolecek
Branch: MAIN
Changes since 1.3: +0 -4 lines
Diff to previous 1.3 (colored)

g/c PIPE_MOREW

Revision 1.3.2.2 / (download) - annotate - [select for diffs], Thu Jun 21 20:09:50 2001 UTC (22 years, 10 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.3.2.1: +154 -0 lines
Diff to previous 1.3.2.1 (colored)

Catch up to -current.

Revision 1.3.2.1, Thu Jun 21 19:08:37 2001 UTC (22 years, 10 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.3: +0 -155 lines
FILE REMOVED

file pipe.h was added on branch nathanw_sa on 2001-06-21 20:09:50 +0000

Revision 1.3 / (download) - annotate - [select for diffs], Thu Jun 21 19:08:37 2001 UTC (22 years, 10 months ago) by jdolecek
Branch: MAIN
Branch point for: nathanw_sa
Changes since 1.2: +1 -0 lines
Diff to previous 1.2 (colored)

Move prototype of sysctl_dopipe() from <sys/sysctl.h> to <sys/pipe.h>
and adjust kern/kern_sysctl.c accordingly.

Revision 1.2 / (download) - annotate - [select for diffs], Sat Jun 16 12:00:03 2001 UTC (22 years, 10 months ago) by jdolecek
Branch: MAIN
Changes since 1.1: +50 -7 lines
Diff to previous 1.1 (colored)

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 / (download) - annotate - [select for diffs] (vendor branch), Sat Jun 16 09:23:11 2001 UTC (22 years, 10 months ago) by jdolecek
Branch: FREEBSD
CVS Tags: FREEBSD-20010109
Changes since 1.1: +0 -0 lines
Diff to previous 1.1 (colored)

Import FreeBSD sys/pipe.h rev 1.17 for reference (this was used as a base
for the NetBSD port).

Revision 1.1 / (download) - annotate - [select for diffs], Sat Jun 16 09:23:11 2001 UTC (22 years, 10 months ago) by jdolecek
Branch: MAIN

Initial revision

This form allows you to request diff's 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.




CVSweb <webmaster@jp.NetBSD.org>