Skip site navigation (1)Skip section navigation (2)

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

[BACK] Up to [FreeBSD] / src / sys / sys

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.46: download - view: text, markup, annotated - select for diffs
Wed Dec 14 22:22:19 2011 UTC (8 weeks ago) by jhb
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +5 -0 lines
SVN rev 228509 on 2011-12-14 22:22:19Z by jhb

Add a helper API to allow in-kernel code to map portions of shared memory
objects created by shm_open(2) into the kernel's address space.  This
provides a convenient way for creating shared memory buffers between
userland and the kernel without requiring custom character devices.

Revision 1.45.2.1.2.1: download - view: text, markup, annotated - select for diffs
Fri Nov 11 04:20:22 2011 UTC (2 months, 4 weeks ago) by kensmith
Branches: RELENG_9_0
CVS tags: RELENG_9_0_0_RELEASE
Diff to: previous 1.45.2.1: preferred, colored; next MAIN 1.46: preferred, colored
Changes since revision 1.45.2.1: +0 -0 lines
SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)

Revision 1.42.2.4: download - view: text, markup, annotated - select for diffs
Wed Oct 26 04:38:23 2011 UTC (3 months, 2 weeks ago) by alc
Branches: RELENG_8
Diff to: previous 1.42.2.3: preferred, colored; branchpoint 1.42: preferred, colored; next MAIN 1.43: preferred, colored
Changes since revision 1.42.2.3: +3 -0 lines
SVN rev 226783 on 2011-10-26 04:38:23Z by alc

MFC r198973
  Add MAP_ANONYMOUS.

Revision 1.42.2.3: download - view: text, markup, annotated - select for diffs
Tue Oct 25 23:19:57 2011 UTC (3 months, 2 weeks ago) by alc
Branches: RELENG_8
Diff to: previous 1.42.2.2: preferred, colored; branchpoint 1.42: preferred, colored
Changes since revision 1.42.2.2: +1 -0 lines
SVN rev 226763 on 2011-10-25 23:19:57Z by alc

MFC r211937
  Add the MAP_PREFAULT_READ option to mmap(2).

Revision 1.45.2.1: download - view: text, markup, annotated - select for diffs
Fri Sep 23 00:51:37 2011 UTC (4 months, 2 weeks ago) by kensmith
Branches: RELENG_9
CVS tags: RELENG_9_0_BP
Branch point for: RELENG_9_0
Diff to: previous 1.45: preferred, colored; next MAIN 1.46: preferred, colored
Changes since revision 1.45: +0 -0 lines
SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)

Revision 1.40.10.2.4.1: download - view: text, markup, annotated - select for diffs
Tue Dec 21 17:10:29 2010 UTC (13 months, 2 weeks ago) by kensmith
Branches: RELENG_7_4
CVS tags: RELENG_7_4_0_RELEASE
Diff to: previous 1.40.10.2: preferred, colored; next MAIN 1.40.16.1: preferred, colored
Changes since revision 1.40.10.2: +0 -0 lines
SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)

Revision 1.42.2.2.4.1: download - view: text, markup, annotated - select for diffs
Tue Dec 21 17:09:25 2010 UTC (13 months, 2 weeks ago) by kensmith
Branches: RELENG_8_2
CVS tags: RELENG_8_2_0_RELEASE
Diff to: previous 1.42.2.2: preferred, colored; next MAIN 1.42.2.3: preferred, colored
Changes since revision 1.42.2.2: +0 -0 lines
SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)

Revision 1.45: download - view: text, markup, annotated - select for diffs
Sat Aug 28 16:57:07 2010 UTC (17 months, 1 week ago) by alc
Branches: MAIN
CVS tags: RELENG_9_BP
Branch point for: RELENG_9
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +1 -0 lines
SVN rev 211937 on 2010-08-28 16:57:07Z by alc

Add the MAP_PREFAULT_READ option to mmap(2).

Reviewed by:	jhb, kib

Revision 1.42.2.2.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 14 02:09:06 2010 UTC (19 months, 3 weeks ago) by kensmith
Branches: RELENG_8_1
CVS tags: RELENG_8_1_0_RELEASE
Diff to: previous 1.42.2.2: preferred, colored; next MAIN 1.42.2.3: preferred, colored
Changes since revision 1.42.2.2: +0 -0 lines
SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)

Revision 1.40.10.2.2.1: download - view: text, markup, annotated - select for diffs
Wed Feb 10 00:26:20 2010 UTC (23 months, 4 weeks ago) by kensmith
Branches: RELENG_7_3
CVS tags: RELENG_7_3_0_RELEASE
Diff to: previous 1.40.10.2: preferred, colored; next MAIN 1.40.16.1: preferred, colored
Changes since revision 1.40.10.2: +0 -0 lines
SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)

Revision 1.40.10.2: download - view: text, markup, annotated - select for diffs
Fri Jan 29 15:58:12 2010 UTC (2 years ago) by jhb
Branches: RELENG_7
CVS tags: RELENG_7_4_BP, RELENG_7_3_BP
Branch point for: RELENG_7_4, RELENG_7_3
Diff to: previous 1.40.10.1: preferred, colored; branchpoint 1.40: preferred, colored; next MAIN 1.41: preferred, colored
Changes since revision 1.40.10.1: +1 -0 lines
SVN rev 203170 on 2010-01-29 15:58:12Z by jhb

MFC 197331, 197394:
Add getpagesizes(3) function that returns either the number of page sizes
supported by the system or a specified subset of the supported page sizes.

Approved by:	re (kib)

Revision 1.44: download - view: text, markup, annotated - select for diffs
Fri Nov 6 07:17:31 2009 UTC (2 years, 3 months ago) by ed
Branches: MAIN
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +3 -0 lines
SVN rev 198973 on 2009-11-06 07:17:31Z by ed

Add MAP_ANONYMOUS.

Many operating systems also provide MAP_ANONYMOUS. It's not hard to
support this ourselves, we'd better add it to make it more likely for
applications to work out of the box.

Reviewed by:	alc (mman.h)

Revision 1.42.2.2: download - view: text, markup, annotated - select for diffs
Sun Nov 1 19:22:07 2009 UTC (2 years, 3 months ago) by alc
Branches: RELENG_8
CVS tags: RELENG_8_2_BP, RELENG_8_1_BP
Branch point for: RELENG_8_2, RELENG_8_1
Diff to: previous 1.42.2.1: preferred, colored; branchpoint 1.42: preferred, colored
Changes since revision 1.42.2.1: +1 -0 lines
SVN rev 198772 on 2009-11-01 19:22:07Z by alc

MFC r197331, r197394
  Add getpagesizes(3).

Revision 1.42.2.1.2.1: download - view: text, markup, annotated - select for diffs
Sun Oct 25 01:10:29 2009 UTC (2 years, 3 months ago) by kensmith
Branches: RELENG_8_0
CVS tags: RELENG_8_0_0_RELEASE
Diff to: previous 1.42.2.1: preferred, colored; next MAIN 1.42.2.2: preferred, colored
Changes since revision 1.42.2.1: +0 -0 lines
SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)

Revision 1.43: download - view: text, markup, annotated - select for diffs
Sat Sep 19 18:01:32 2009 UTC (2 years, 4 months ago) by alc
Branches: MAIN
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +1 -0 lines
SVN rev 197331 on 2009-09-19 18:01:32Z by alc

Add getpagesizes(3).  This functions either the number of supported page
sizes or some number of the sizes themselves.  It is functionally
compatible with a function by the same name under Solaris.

Reviewed by:	jhb

Revision 1.42.2.1: download - view: text, markup, annotated - select for diffs
Mon Aug 3 08:13:06 2009 UTC (2 years, 6 months ago) by kensmith
Branches: RELENG_8
CVS tags: RELENG_8_0_BP
Branch point for: RELENG_8_0
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +0 -0 lines
SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)

Revision 1.40.10.1.2.1: download - view: text, markup, annotated - select for diffs
Wed Apr 15 03:14:26 2009 UTC (2 years, 9 months ago) by kensmith
Branches: RELENG_7_2
CVS tags: RELENG_7_2_0_RELEASE
Diff to: previous 1.40.10.1: preferred, colored; next MAIN 1.40.10.2: preferred, colored
Changes since revision 1.40.10.1: +0 -0 lines
SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)

Revision 1.40.10.1: download - view: text, markup, annotated - select for diffs
Thu Feb 26 15:59:22 2009 UTC (2 years, 11 months ago) by jhb
Branches: RELENG_7
CVS tags: RELENG_7_2_BP
Branch point for: RELENG_7_2
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +1 -0 lines
SVN rev 189075 on 2009-02-26 15:59:22Z by jhb

MFC: Add support for "superpages" on amd64 and i386.  This includes adding the
superpage reservation system to the machine-independent VM system as well as
changes to the pmap code for amd64 and i386 to support superpages.

Reviewed by:	alc
Tested by:	ps

Revision 1.40.18.1: download - view: text, markup, annotated - select for diffs
Tue Nov 25 02:59:29 2008 UTC (3 years, 2 months ago) by kensmith
Branches: RELENG_7_1
CVS tags: RELENG_7_1_0_RELEASE
Diff to: previous 1.40: preferred, colored; next MAIN 1.41: preferred, colored
Changes since revision 1.40: +0 -0 lines
SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)

Revision 1.40.16.1: download - view: text, markup, annotated - select for diffs
Thu Oct 2 02:57:24 2008 UTC (3 years, 4 months ago) by kensmith
Branches: RELENG_6_4
CVS tags: RELENG_6_4_0_RELEASE
Diff to: previous 1.40: preferred, colored; next MAIN 1.41: preferred, colored
Changes since revision 1.40: +0 -0 lines
SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)

Revision 1.42: download - view: text, markup, annotated - select for diffs
Fri Mar 28 04:29:27 2008 UTC (3 years, 10 months ago) by ps
Branches: MAIN
CVS tags: RELENG_8_BP
Branch point for: RELENG_8
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +1 -0 lines
Add support to mincore for detecting whether a page is part of a
"super" page or not.

Reviewed by:	alc, ups

Revision 1.41: download - view: text, markup, annotated - select for diffs
Tue Jan 8 21:58:16 2008 UTC (4 years, 1 month ago) by jhb
Branches: MAIN
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +32 -1 lines
Add a new file descriptor type for IPC shared memory objects and use it to
implement shm_open(2) and shm_unlink(2) in the kernel:
- Each shared memory file descriptor is associated with a swap-backed vm
  object which provides the backing store.  Each descriptor starts off with
  a size of zero, but the size can be altered via ftruncate(2).  The shared
  memory file descriptors also support fstat(2).  read(2), write(2),
  ioctl(2), select(2), poll(2), and kevent(2) are not supported on shared
  memory file descriptors.
- shm_open(2) and shm_unlink(2) are now implemented as system calls that
  manage shared memory file descriptors.  The virtual namespace that maps
  pathnames to shared memory file descriptors is implemented as a hash
  table where the hash key is generated via the 32-bit Fowler/Noll/Vo hash
  of the pathname.
- As an extension, the constant 'SHM_ANON' may be specified in place of the
  path argument to shm_open(2).  In this case, an unnamed shared memory
  file descriptor will be created similar to the IPC_PRIVATE key for
  shmget(2).  Note that the shared memory object can still be shared among
  processes by sharing the file descriptor via fork(2) or sendmsg(2), but
  it is unnamed.  This effectively serves to implement the getmemfd() idea
  bandied about the lists several times over the years.
- The backing store for shared memory file descriptors are garbage
  collected when they are not referenced by any open file descriptors or
  the shm_open(2) virtual namespace.

Submitted by:	dillon, peter (previous versions)
Submitted by:	rwatson (I based this on his version)
Reviewed by:	alc (suggested converting getmemfd() to shm_open())

Revision 1.40: download - view: text, markup, annotated - select for diffs
Sat Apr 2 12:33:31 2005 UTC (6 years, 10 months ago) by das
Branches: MAIN
CVS tags: RELENG_7_BP, RELENG_7_1_BP, RELENG_7_0_BP, RELENG_7_0_0_RELEASE, RELENG_7_0, RELENG_6_BP, RELENG_6_4_BP, RELENG_6_3_BP, RELENG_6_3_0_RELEASE, RELENG_6_3, RELENG_6_2_BP, RELENG_6_2_0_RELEASE, RELENG_6_2, RELENG_6_1_BP, RELENG_6_1_0_RELEASE, RELENG_6_1, RELENG_6_0_BP, RELENG_6_0_0_RELEASE, RELENG_6_0, RELENG_6
Branch point for: RELENG_7_1, RELENG_7, RELENG_6_4
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +21 -12 lines
Namespace issues.

Revision 1.39: download - view: text, markup, annotated - select for diffs
Tue Apr 27 13:13:20 2004 UTC (7 years, 9 months ago) by mux
Branches: MAIN
CVS tags: RELENG_5_BP, RELENG_5_5_BP, RELENG_5_5_0_RELEASE, RELENG_5_5, RELENG_5_4_BP, RELENG_5_4_0_RELEASE, RELENG_5_4, RELENG_5_3_BP, RELENG_5_3_0_RELEASE, RELENG_5_3, RELENG_5
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +2 -2 lines
Remove mlockall() and munlockall() from the list of unimplemented
syscalls in a comment, we have them since quite some time now.

Noticed by:	Stefan Farfeleder <stefan@fafoe.narf.at>

Revision 1.38: download - view: text, markup, annotated - select for diffs
Wed Apr 7 04:19:49 2004 UTC (7 years, 10 months ago) by imp
Branches: MAIN
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +0 -4 lines
Remove advertising clause from University of California Regent's license,
per letter dated July 22, 1999.

Approved by: core

Revision 1.37: download - view: text, markup, annotated - select for diffs
Mon Aug 11 07:14:07 2003 UTC (8 years, 6 months ago) by bms
Branches: MAIN
CVS tags: RELENG_5_2_BP, RELENG_5_2_1_RELEASE, RELENG_5_2_0_RELEASE, RELENG_5_2
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +2 -0 lines
Add the mlockall() and munlockall() system calls.
 - All those diffs to syscalls.master for each architecture *are*
   necessary. This needed clarification; the stub code generation for
   mlockall() was disabled, which would prevent applications from
   linking to this API (suggested by mux)
 - Giant has been quoshed. It is no longer held by the code, as
   the required locking has been pushed down within vm_map.c.
 - Callers must specify VM_MAP_WIRE_HOLESOK or VM_MAP_WIRE_NOHOLES
   to express their intention explicitly.
 - Inspected at the vmstat, top and vm pager sysctl stats level.
   Paging-in activity is occurring correctly, using a test harness.
 - The RES size for a process may appear to be greater than its SIZE.
   This is believed to be due to mappings of the same shared library
   page being wired twice. Further exploration is needed.
 - Believed to back out of allocations and locks correctly
   (tested with WITNESS, MUTEX_PROFILING, INVARIANTS and DIAGNOSTIC).

PR:             kern/43426, standards/54223
Reviewed by:    jake, alc
Approved by:    jake (mentor)
MFC after:	2 weeks

Revision 1.36: download - view: text, markup, annotated - select for diffs
Sat Aug 9 03:23:24 2003 UTC (8 years, 6 months ago) by bms
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +12 -2 lines
Add the POSIX 1003.1-2001 posix_madvise() interface.

PR:		standards/54634
Reviewed by:	das
Approved by:	jake (mentor)

Revision 1.35: download - view: text, markup, annotated - select for diffs
Mon Mar 31 21:09:56 2003 UTC (8 years, 10 months ago) by wes
Branches: MAIN
CVS tags: RELENG_5_1_BP, RELENG_5_1_0_RELEASE, RELENG_5_1
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +1 -0 lines
Add a facility allowing processes to inform the VM subsystem they are
critical and should not be killed when pageout is looking for more
memory pages in all the wrong places.

Reviewed by:	arch@
Sponsored by:	St. Bernard Software

Revision 1.34: download - view: text, markup, annotated - select for diffs
Fri Sep 13 18:29:15 2002 UTC (9 years, 4 months ago) by mike
Branches: MAIN
CVS tags: RELENG_5_0_BP, RELENG_5_0_0_RELEASE, RELENG_5_0
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +2 -8 lines
mlockall() and munlockall() are unimplemented; remove their prototypes.

Revision 1.33: download - view: text, markup, annotated - select for diffs
Fri Aug 23 20:04:49 2002 UTC (9 years, 5 months ago) by mike
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +55 -24 lines
o Fix namespace issues in <sys/mman.h>.
o Move mode_t details from <sys/types.h> into <sys/_types.h>.
o Add primitives for sharing the mode_t and off_t typedefs.
o Add typedefs mode_t, off_t, and size_t to <sys/mman.h>.

PR:	21644

Revision 1.32: download - view: text, markup, annotated - select for diffs
Tue Mar 19 20:18:40 2002 UTC (9 years, 10 months ago) by alfred
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +14 -14 lines
Remove __P

Revision 1.29.2.1: download - view: text, markup, annotated - select for diffs
Sat Aug 25 07:25:43 2001 UTC (10 years, 5 months ago) by dillon
Branches: RELENG_4
CVS tags: RELENG_4_9_BP, RELENG_4_9_0_RELEASE, RELENG_4_9, RELENG_4_8_BP, RELENG_4_8_0_RELEASE, RELENG_4_8, RELENG_4_7_BP, RELENG_4_7_0_RELEASE, RELENG_4_7, RELENG_4_6_BP, RELENG_4_6_2_RELEASE, RELENG_4_6_1_RELEASE, RELENG_4_6_0_RELEASE, RELENG_4_6, RELENG_4_5_BP, RELENG_4_5_0_RELEASE, RELENG_4_5, RELENG_4_4_BP, RELENG_4_4_0_RELEASE, RELENG_4_4, RELENG_4_11_BP, RELENG_4_11_0_RELEASE, RELENG_4_11, RELENG_4_10_BP, RELENG_4_10_0_RELEASE, RELENG_4_10
Diff to: previous 1.29: preferred, colored; next MAIN 1.30: preferred, colored
Changes since revision 1.29: +8 -1 lines
MFC document minherit() system call and add user-accessible #define's to
cover the 'inherit' argument.  There are no functional changes (except the
new defines).

Approved by:	jkh

Revision 1.31: download - view: text, markup, annotated - select for diffs
Fri Aug 24 19:48:07 2001 UTC (10 years, 5 months ago) by dillon
Branches: MAIN
CVS tags: KSE_PRE_MILESTONE_2, KSE_MILESTONE_2
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +9 -2 lines
Add INHERIT_XXX defines for minherit() system call.
Remove MAP_INHERIT - it is no longer supported.

Revision 1.30: download - view: text, markup, annotated - select for diffs
Fri Aug 24 18:22:46 2001 UTC (10 years, 5 months ago) by dillon
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +2 -2 lines
Remove MAP_NOEXTEND.  It came from 4.4-lite and not only was never
implemented, but mmap()'s default behavior is *already* to not extend
files.  Only write() or ftruncate() can extend a file.

Revision 1.29: download - view: text, markup, annotated - select for diffs
Mon Feb 28 04:10:34 2000 UTC (11 years, 11 months ago) by ps
Branches: MAIN
CVS tags: RELENG_4_BP, RELENG_4_3_BP, RELENG_4_3_0_RELEASE, RELENG_4_3, RELENG_4_2_0_RELEASE, RELENG_4_1_1_RELEASE, RELENG_4_1_0_RELEASE, RELENG_4_0_0_RELEASE, PRE_SMPNG
Branch point for: RELENG_4
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +9 -2 lines
Add MAP_NOCORE to mmap(2), and MADV_NOCORE and MADV_CORE to madvise(2).
This
This feature allows you to specify if mmap'd data is included in
an application's corefile.

Change the type of eflags in struct vm_map_entry from u_char to
vm_eflags_t (an unsigned int).

Reviewed by:	dillon,jdp,alfred
Approved by:	jkh

Revision 1.28: download - view: text, markup, annotated - select for diffs
Wed Dec 29 04:24:44 1999 UTC (12 years, 1 month ago) by peter
Branches: MAIN
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +3 -3 lines
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers.  "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot).  This is consistant with the other
BSD's who made this change quite some time ago.  More commits to come.

Revision 1.27: download - view: text, markup, annotated - select for diffs
Sun Dec 12 03:19:32 1999 UTC (12 years, 2 months ago) by dillon
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +4 -1 lines
    Add MAP_NOSYNC feature to mmap(), and MADV_NOSYNC and MADV_AUTOSYNC to
    madvise().

    This feature prevents the update daemon from gratuitously flushing
    dirty pages associated with a mapped file-backed region of memory.  The
    system pager will still page the memory as necessary and the VM system
    will still be fully coherent with the filesystem.  Modifications made
    by other means to the same area of memory, for example by write(), are
    unaffected.  The feature works on a page-granularity basis.

    MAP_NOSYNC allows one to use mmap() to share memory between processes
    without incuring any significant filesystem overhead, putting it in
    the same performance category as SysV Shared memory and anonymous memory.

Reviewed by: julian, alc, dg

Revision 1.7.4.1: download - view: text, markup, annotated - select for diffs
Sun Sep 5 08:37:44 1999 UTC (12 years, 5 months ago) by peter
Branches: RELENG_2_1_0
Diff to: previous 1.7: preferred, colored; next MAIN 1.8: preferred, colored
Changes since revision 1.7: +1 -1 lines
$Id$ -> $FreeBSD$

Revision 1.14.2.3: download - view: text, markup, annotated - select for diffs
Sun Sep 5 08:22:37 1999 UTC (12 years, 5 months ago) by peter
Branches: RELENG_2_2
Diff to: previous 1.14.2.2: preferred, colored; branchpoint 1.14: preferred, colored; next MAIN 1.15: preferred, colored
Changes since revision 1.14.2.2: +1 -1 lines
$Id$ -> $FreeBSD$

Revision 1.24.2.2: download - view: text, markup, annotated - select for diffs
Sun Aug 29 16:32:32 1999 UTC (12 years, 5 months ago) by peter
Branches: RELENG_3
CVS tags: RELENG_3_5_0_RELEASE, RELENG_3_4_0_RELEASE, RELENG_3_3_0_RELEASE
Diff to: previous 1.24.2.1: preferred, colored; branchpoint 1.24: preferred, colored; next MAIN 1.25: preferred, colored
Changes since revision 1.24.2.1: +1 -1 lines
$Id$ -> $FreeBSD$

Revision 1.26: download - view: text, markup, annotated - select for diffs
Sat Aug 28 00:51:52 1999 UTC (12 years, 5 months ago) by peter
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +1 -1 lines
$Id$ -> $FreeBSD$

Revision 1.24.2.1: download - view: text, markup, annotated - select for diffs
Wed Jan 27 20:51:42 1999 UTC (13 years ago) by julian
Branches: RELENG_3
CVS tags: RELENG_3_2_PAO_BP, RELENG_3_2_PAO, RELENG_3_2_0_RELEASE, RELENG_3_1_0_RELEASE
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +1 -3 lines
MFC: Linux threads support is now default, to match -current
	Recompile the usual suspects!

Revision 1.25: download - view: text, markup, annotated - select for diffs
Tue Jan 26 02:49:52 1999 UTC (13 years ago) by julian
Branches: MAIN
CVS tags: PRE_VFS_BIO_NFS_PATCH, PRE_SMP_VMSHARE, PRE_NEWBUS, POST_VFS_BIO_NFS_PATCH, POST_SMP_VMSHARE, POST_NEWBUS
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +1 -3 lines
Mostly remove the VM_STACK OPTION.
This changes the definitions of a few items so that structures are the
same whether or not the option itself is enabled. This allows
people to enable and disable the option without recompilng the world.

As the author says:

|I ran into a problem pulling out the VM_STACK option.  I was aware of this
|when I first did the work, but then forgot about it.  The VM_STACK stuff
|has some code changes in the i386 branch.  There need to be corresponding
|changes in the alpha branch before it can come out completely.

what is done:
|
|1) Pull the VM_STACK option out of the header files it appears in.  This
|really shouldn't affect anything that executes with or without the rest
|of the VM_STACK patches.  The vm_map_entry will then always have one
|extra element (avail_ssize).  It just won't be used if the VM_STACK
|option is not turned on.
|
|I've also pulled the option out of vm_map.c.  This shouldn't harm anything,
|since the routines that are enabled as a result are not called unless
|the VM_STACK option is enabled elsewhere.
|
|2) Add what appears to be appropriate code the the alpha branch, still
|protected behind the VM_STACK switch.  I don't have an alpha machine,
|so we would need to get some testers with alpha machines to try it out.
|
|Once there is some testing, we can consider making the change permanent
|for both i386 and alpha.
|
[..]
|
|Once the alpha code is adequately tested, we can pull VM_STACK out
|everywhere.
|

Submitted by:	"Richard Seaman, Jr." <dick@tar.com>

Revision 1.24: download - view: text, markup, annotated - select for diffs
Wed Jan 6 23:05:40 1999 UTC (13 years, 1 month ago) by julian
Branches: MAIN
CVS tags: RELENG_3_BP
Branch point for: RELENG_3
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +4 -1 lines
Add (but don't activate) code for a special VM option to make
downward growing stacks more general.
Add (but don't activate) code to use the new stack facility
when running threads, (specifically the linux threads support).
This allows people to use both linux compiled linuxthreads, and also the
native FreeBSD linux-threads port.

The code is conditional on VM_STACK. Not using this will
produce the old heavily tested system.

Submitted by: Richard Seaman <dick@tar.com>

Revision 1.23: download - view: text, markup, annotated - select for diffs
Sat Mar 28 11:50:38 1998 UTC (13 years, 10 months ago) by dufault
Branches: MAIN
CVS tags: RELENG_3_0_0_RELEASE, PRE_NOBDEV, PRE_DEVFS_SLICE, POST_DEVFS_SLICE
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +5 -5 lines
Finish _POSIX_PRIORITY_SCHEDULING.  Needs P1003_1B and
_KPOSIX_PRIORITY_SCHEDULING options to work.  Changes:

Change all "posix4" to "p1003_1b".  Misnamed files are left
as "posix4" until I'm told if I can simply delete them and add
new ones;

Add _POSIX_PRIORITY_SCHEDULING system calls for FreeBSD and Linux;

Add man pages for _POSIX_PRIORITY_SCHEDULING system calls;

Add options to LINT;

Minor fixes to P1003_1B code during testing.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Sun Mar 8 17:25:33 1998 UTC (13 years, 11 months ago) by dufault
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +7 -5 lines
Reviewed by:	bde

Changes to support building with _POSIX_SOURCE set to 199309L:

1. Add sys/_posix.h to handle those preprocessor defs that POSIX
says have effects when defined before including any header files;

2. Change POSIX4_VISIBLE back to _POSIX4_VISIBLE

3. Add _POSIX4_VISIBLE_HISTORICALLY for pre-existing BSD features now
defined in POSIX.  These show up when:

_POSIX_SOURCE and _POSIX_C_SOURCE are not set or
_POSIX_C_SOURCE is set >= 199309L

and vanish when:

_POSIX_SOURCE is set or _POSIX_C_SOURCE is < 199309L.

4. Explain these in man 9 posix4;

5. Include _posix.h and conditionalize on new feature test.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Wed Mar 4 10:26:35 1998 UTC (13 years, 11 months ago) by dufault
Branches: MAIN
CVS tags: PRE_SOFTUPDATE, POST_SOFTUPDATE
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +22 -4 lines
Reviewed by:	msmith, bde long ago
POSIX.4 headers and sysctl variables.  Nothing should change
unless POSIX4 is defined or _POSIX_VERSION is set to 199309.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Wed Dec 31 01:22:00 1997 UTC (14 years, 1 month ago) by alex
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +11 -11 lines
Convert caddr_t --> void * for sys/mman.h functions.

mlock, mmap, mprotect, msync, munlock, and munmap are defined by
POSIX as taking void *.  The const modifier has been added to
mlock, munlock, and mprotect as the standard dictates.

minherit comes from OpenBSD and has been updated to conform with
their recent change to void *.

madvise and mincore are not defined by POSIX, but their arguments
have been modified to be consistent with the POSIX-defined functions.
mincore takes a const pointer, but madvise does not due to the
MADV_FREE case.

Discussed with:	bde

Revision 1.14.2.2: download - view: text, markup, annotated - select for diffs
Tue Dec 2 21:31:32 1997 UTC (14 years, 2 months ago) by dyson
Branches: RELENG_2_2
CVS tags: RELENG_2_2_8_RELEASE, RELENG_2_2_7_RELEASE, RELENG_2_2_6_RELEASE
Diff to: previous 1.14.2.1: preferred, colored; branchpoint 1.14: preferred, colored
Changes since revision 1.14.2.1: +2 -1 lines
Add definition of MS_SYNC for compatibility.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Tue Dec 2 21:30:03 1997 UTC (14 years, 2 months ago) by dyson
Branches: MAIN
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +2 -1 lines
Define MS_SYNC for compatibility.

Revision 1.14.2.1: download - view: text, markup, annotated - select for diffs
Sun May 11 04:41:23 1997 UTC (14 years, 9 months ago) by davidn
Branches: RELENG_2_2
CVS tags: RELENG_2_2_5_RELEASE, RELENG_2_2_2_RELEASE
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +9 -1 lines
MFC: MAP_FAILED was not declared (but was documented in manpage).

Revision 1.18: download - view: text, markup, annotated - select for diffs
Sun Apr 13 15:38:09 1997 UTC (14 years, 10 months ago) by bde
Branches: MAIN
CVS tags: pre_smp_merge, post_smp_merge, WOLLMAN_MBUF, BP_WOLLMAN_MBUF
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +4 -1 lines
#ifdef'ed the declaration of lseek() so that -Wredundant-decls doesn't
cause noise.

Duplicated the lseek() redeclaration hack for all functions involving
off_t's (ftruncate(), mmap() and truncate()) to help broken programs
work.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Sat Feb 22 09:45:34 1997 UTC (14 years, 11 months ago) by peter
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +1 -1 lines
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$.  We are not
ready for it yet.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Tue Jan 14 06:55:17 1997 UTC (15 years ago) by jkh
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +1 -1 lines
Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Thu Dec 12 01:00:14 1996 UTC (15 years, 2 months ago) by alex
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +6 -1 lines
POSIX.4 defines MAP_FAILED to be the error return from mmap().

Revision 1.14: download - view: text, markup, annotated - select for diffs
Thu May 23 00:45:44 1996 UTC (15 years, 8 months ago) by dyson
Branches: MAIN
CVS tags: RELENG_2_2_BP, RELENG_2_2_1_RELEASE, RELENG_2_2_0_RELEASE
Branch point for: RELENG_2_2
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +2 -1 lines
Initial support for MADV_FREE, support for pages that we don't care
about the contents anymore.  This gives us alot of the advantage of
freeing individual pages through munmap, but with almost none of the
overhead.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Sun May 19 07:36:41 1996 UTC (15 years, 8 months ago) by dyson
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +10 -1 lines
Initial support for mincore and madvise.  Both are almost fully
supported, except madvise does not page in with MADV_WILLNEED, and
MADV_DONTNEED doesn't force dirty pages out.

Revision 1.1.1.2 (vendor branch): download - view: text, markup, annotated - select for diffs
Mon Mar 11 19:39:11 1996 UTC (15 years, 11 months ago) by peter
Branches: CSRG
CVS tags: bsd_44_lite_2
Diff to: previous 1.1.1.1: preferred, colored
Changes since revision 1.1.1.1: +5 -2 lines
Import 4.4BSD-Lite2 onto the vendor branch, note that in the kernel, all
files are off the vendor branch, so this should not change anything.

A "U" marker generally means that the file was not changed in between
the 4.4Lite and Lite-2 releases, and does not need a merge.  "C" generally
means that there was a change.
[new sys/syscallargs.h file, to be "cvs rm"ed]

Revision 1.12: download - view: text, markup, annotated - select for diffs
Mon Mar 11 02:09:09 1996 UTC (15 years, 11 months ago) by hsu
Branches: MAIN
CVS tags: wollman_polling
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +6 -6 lines
Merge in Lite2: sync up comments.
Reviewed by:	davidg & bde

Revision 1.11: download - view: text, markup, annotated - select for diffs
Sat Mar 2 17:42:34 1996 UTC (15 years, 11 months ago) by peter
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +1 -2 lines
Remove redundant comment about the 'int len' variables that should be
changed to size_t's.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Sat Mar 2 16:55:26 1996 UTC (15 years, 11 months ago) by peter
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +4 -2 lines
Change madvise prototype from 'int len' to 'size_t len'.  All the other
m* syscalls were prototyped as size_t already.  Add missing mincore() and
minherit() prototypes, as suggested by bde.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Thu Nov 30 20:59:08 1995 UTC (16 years, 2 months ago) by se
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +2 -1 lines
Add definition of PROT_NONE=0 for compatibility with SunOS/Solaris/Linux ...

Reviewed by:	julian

Revision 1.8: download - view: text, markup, annotated - select for diffs
Thu Jul 13 08:48:02 1995 UTC (16 years, 7 months ago) by davidg
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +4 -4 lines
NOTE: libkvm, w, ps, 'top', and any other utility which depends on struct
      proc or any VM system structure will have to be rebuilt!!!

Much needed overhaul of the VM system. Included in this first round of
changes:

1) Improved pager interfaces: init, alloc, dealloc, getpages, putpages,
   haspage, and sync operations are supported. The haspage interface now
   provides information about clusterability. All pager routines now take
   struct vm_object's instead of "pagers".

2) Improved data structures. In the previous paradigm, there is constant
   confusion caused by pagers being both a data structure ("allocate a
   pager") and a collection of routines. The idea of a pager structure has
   escentially been eliminated. Objects now have types, and this type is
   used to index the appropriate pager. In most cases, items in the pager
   structure were duplicated in the object data structure and thus were
   unnecessary. In the few cases that remained, a un_pager structure union
   was created in the object to contain these items.

3) Because of the cleanup of #1 & #2, a lot of unnecessary layering can now
   be removed. For instance, vm_object_enter(), vm_object_lookup(),
   vm_object_remove(), and the associated object hash list were some of the
   things that were removed.

4) simple_lock's removed. Discussion with several people reveals that the
   SMP locking primitives used in the VM system aren't likely the mechanism
   that we'll be adopting. Even if it were, the locking that was in the code
   was very inadequate and would have to be mostly re-done anyway. The
   locking in a uni-processor kernel was a no-op but went a long way toward
   making the code difficult to read and debug.

5) Places that attempted to kludge-up the fact that we don't have kernel
   thread support have been fixed to reflect the reality that we are really
   dealing with processes, not threads. The VM system didn't have complete
   thread support, so the comments and mis-named routines were just wrong.
   We now use tsleep and wakeup directly in the lock routines, for instance.

6) Where appropriate, the pagers have been improved, especially in the
   pager_alloc routines. Most of the pager_allocs have been rewritten and
   are now faster and easier to maintain.

7) The pagedaemon pageout clustering algorithm has been rewritten and
   now tries harder to output an even number of pages before and after
   the requested page. This is sort of the reverse of the ideal pagein
   algorithm and should provide better overall performance.

8) Unnecessary (incorrect) casts to caddr_t in calls to tsleep & wakeup
   have been removed. Some other unnecessary casts have also been removed.

9) Some almost useless debugging code removed.

10) Terminology of shadow objects vs. backing objects straightened out.
    The fact that the vm_object data structure escentially had this
    backwards really confused things. The use of "shadow" and "backing
    object" throughout the code is now internally consistent and correct
    in the Mach terminology.

11) Several minor bug fixes, including one in the vm daemon that caused
    0 RSS objects to not get purged as intended.

12) A "default pager" has now been created which cleans up the transition
    of objects to the "swap" type. The previous checks throughout the code
    for swp->pg_data != NULL were really ugly. This change also provides
    the rudiments for future backing of "anonymous" memory by something
    other than the swap pager (via the vnode pager, for example), and it
    allows the decision about which of these pagers to use to be made
    dynamically (although will need some additional decision code to do
    this, of course).

13) (dyson) MAP_COPY has been deprecated and the corresponding "copy
    object" code has been removed. MAP_COPY was undocumented and non-
    standard. It was furthermore broken in several ways which caused its
    behavior to degrade to MAP_PRIVATE. Binaries that use MAP_COPY will
    continue to work correctly, but via the slightly different semantics
    of MAP_PRIVATE.

14) (dyson) Sharing maps have been removed. It's marginal usefulness in a
    threads design can be worked around in other ways. Both #12 and #13
    were done to simplify the code and improve readability and maintain-
    ability. (As were most all of these changes)

TODO:

1) Rewrite most of the vnode pager to use VOP_GETPAGES/PUTPAGES. Doing
   this will reduce the vnode pager to a mere fraction of its current size.

2) Rewrite vm_fault and the swap/vnode pagers to use the clustering
   information provided by the new haspage pager interface. This will
   substantially reduce the overhead by eliminating a large number of
   VOP_BMAP() calls. The VOP_BMAP() filesystem interface should be
   improved to provide both a "behind" and "ahead" indication of
   contiguousness.

3) Implement the extended features of pager_haspage in swap_pager_haspage().
   It currently just says 0 pages ahead/behind.

4) Re-implement the swap device (swstrategy) in a more elegant way, perhaps
   via a much more general mechanism that could also be used for disk
   striping of regular filesystems.

5) Do something to improve the architecture of vm_object_collapse(). The
   fact that it makes calls into the swap pager and knows too much about
   how the swap pager operates really bothers me. It also doesn't allow
   for collapsing of non-swap pager objects ("unnamed" objects backed by
   other pagers).

Revision 1.7: download - view: text, markup, annotated - select for diffs
Sun May 14 19:19:07 1995 UTC (16 years, 9 months ago) by nate
Branches: MAIN
CVS tags: RELENG_2_1_7_RELEASE, RELENG_2_1_6_RELEASE, RELENG_2_1_6_1_RELEASE, RELENG_2_1_5_RELEASE, RELENG_2_1_0_RELEASE, RELENG_2_1_0_BP, RELENG_2_0_5_RELEASE, RELENG_2_0_5_BP, RELENG_2_0_5_ALPHA, RELENG_2_0_5
Branch point for: RELENG_2_1_0
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +2 -1 lines
Prototype for madvise() is missing from sys/mman.h

Submitted by:	Kai Vorma <vode@snakemail.hut.fi>

Revision 1.6: download - view: text, markup, annotated - select for diffs
Sat Mar 25 17:28:30 1995 UTC (16 years, 10 months ago) by davidg
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +2 -2 lines
Fixed msync() prototype.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Sat Mar 25 16:43:42 1995 UTC (16 years, 10 months ago) by davidg
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +7 -1 lines
Added flags definitions for msync().

Revision 1.4: download - view: text, markup, annotated - select for diffs
Sun Aug 21 04:41:52 1994 UTC (17 years, 5 months ago) by paul
Branches: MAIN
CVS tags: RELEASE_2_0, OLAH_TTCP, BETA_2_0, ALPHA_2_0
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +6 -1 lines
Made them all idempotent.
Reviewed by:
Submitted by:

Revision 1.3: download - view: text, markup, annotated - select for diffs
Tue Aug 2 15:06:58 1994 UTC (17 years, 6 months ago) by davidg
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +2 -1 lines
Added MAP_FILE definition that does nothing - for backward source
compatibility.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Tue Aug 2 07:53:14 1994 UTC (17 years, 6 months ago) by davidg
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +1 -0 lines
Added $Id$

Revision 1.1.1.1 (vendor branch): download - view: text, markup, annotated - select for diffs
Tue May 24 10:09:06 1994 UTC (17 years, 8 months ago) by rgrimes
Branches: CSRG
CVS tags: bsd_44_lite, REL_before_johndavid_2_0_0
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +0 -0 lines
BSD 4.4 Lite Kernel Sources

Revision 1.1: download - view: text, markup, annotated - select for diffs
Tue May 24 10:09:05 1994 UTC (17 years, 8 months ago) by rgrimes
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