]> git.ipfire.org Git - thirdparty/man-pages.git/blobdiff - man2/madvise.2
Wrapped long lines, wrapped at sentence boundaries; stripped trailing
[thirdparty/man-pages.git] / man2 / madvise.2
index d80c9808bddb71593a540735cb62463c74e9def6..c08e0d824c1e2bf82230cb4486836016fdae60b6 100644 (file)
@@ -10,7 +10,7 @@
 .\" manual under the conditions for verbatim copying, provided that the
 .\" entire resulting derived work is distributed under the terms of a
 .\" permission notice identical to this one.
-.\" 
+.\"
 .\" Since the Linux kernel and libraries are constantly changing, this
 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
 .\" responsibility for errors or omissions, or for damages resulting from
@@ -18,7 +18,7 @@
 .\" have taken the same level of care in the production of this manual,
 .\" which is licensed free of charge, as they might when working
 .\" professionally.
-.\" 
+.\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
 .\"
@@ -49,21 +49,24 @@ the address range beginning at address
 .I start
 and with size
 .I length
-bytes. It allows an application to tell the kernel how it expects to use
+bytes.
+It allows an application to tell the kernel how it expects to use
 some mapped or shared memory areas, so that the kernel can choose
 appropriate read-ahead and caching techniques.
-This call does not influence the semantics of the application 
+This call does not influence the semantics of the application
 (except in the case of
 .BR MADV_DONTNEED ),
 but
-may influence its performance. The kernel is free to ignore the advice.
+may influence its performance.
+The kernel is free to ignore the advice.
 .LP
-The advice is indicated in the 
+The advice is indicated in the
 .I advice
 parameter which can be
 .TP
 .B MADV_NORMAL
-No special treatment. This is the default.
+No special treatment.
+This is the default.
 .TP
 .B MADV_RANDOM
 Expect page references in random order.
@@ -89,13 +92,13 @@ without an underlying file.
 .TP
 .BR MADV_REMOVE " (Since Linux 2.6.16)"
 Free up a given range of pages
-and its associated backing store. 
+and its associated backing store.
 Currently,
 .\" 2.6.18-rc5
-only shmfs/tmpfs supports this; other filesystems return -ENOSYS. 
-.\" Databases want to use this feature to drop a section of their 
-.\" bufferpool (shared memory segments) - without writing back to 
-.\" disk/swap space. This feature is also useful for supporting 
+only shmfs/tmpfs supports this; other filesystems return -ENOSYS.
+.\" Databases want to use this feature to drop a section of their
+.\" bufferpool (shared memory segments) - without writing back to
+.\" disk/swap space.  This feature is also useful for supporting
 .\" hot-plug memory on UML.
 .TP
 .BR MADV_DONTFORK " (Since Linux 2.6.16)"
@@ -108,22 +111,22 @@ the physical location of a pagei(s) if the parent writes to it after a
 (Such page relocations cause problems for hardware that
 DMAs into the page(s).)
 .\" [PATCH] madvise MADV_DONTFORK/MADV_DOFORK
-.\" Currently, copy-on-write may change the physical address of 
-.\" a page even if the user requested that the page is pinned in 
-.\" memory (either by mlock or by get_user_pages). This happens 
-.\" if the process forks meanwhile, and the parent writes to that 
-.\" page.  As a result, the page is orphaned: in case of 
-.\" get_user_pages, the application will never see any data hardware 
-.\" DMA's into this page after the COW.  In case of mlock'd memory, 
+.\" Currently, copy-on-write may change the physical address of
+.\" a page even if the user requested that the page is pinned in
+.\" memory (either by mlock or by get_user_pages).  This happens
+.\" if the process forks meanwhile, and the parent writes to that
+.\" page.  As a result, the page is orphaned: in case of
+.\" get_user_pages, the application will never see any data hardware
+.\" DMA's into this page after the COW.  In case of mlock'd memory,
 .\" the parent is not getting the realtime/security benefits of mlock.
-.\" 
-.\" In particular, this affects the Infiniband modules which do DMA from 
+.\"
+.\" In particular, this affects the Infiniband modules which do DMA from
 .\" and into user pages all the time.
-.\" 
-.\" This patch adds madvise options to control whether memory range is 
-.\" inherited across fork. Useful e.g. for when hardware is doing DMA 
-.\" from/into these pages.  Could also be useful to an application 
-.\" wanting to speed up its forks by cutting large areas out of 
+.\"
+.\" This patch adds madvise options to control whether memory range is
+.\" inherited across fork. Useful e.g. for when hardware is doing DMA
+.\" from/into these pages.  Could also be useful to an application
+.\" wanting to speed up its forks by cutting large areas out of
 .\" consideration.
 .TP
 .BR MADV_DOFORK " (Since Linux 2.6.16)"
@@ -132,9 +135,10 @@ Undo the effect of
 restoring the default behaviour, whereby a mapping is inherited across
 .BR fork (2).
 .SH "RETURN VALUE"
-On success 
+On success
 .BR madvise ()
-returns zero. On error, it returns \-1 and
+returns zero.
+On error, it returns \-1 and
 .I errno
 is set appropriately.
 .SH ERRORS
@@ -146,14 +150,14 @@ A kernel resource was temporarily unavailable.
 The map exists, but the area maps something that isn't a file.
 .TP
 .B EINVAL
-The value 
+The value
 .IR len
 is negative,
 .\" .I len
 .\" is zero,
 .I start
 is not page-aligned,
-.I advice 
+.I advice
 is not a valid value, or the application is attempting
 to release locked or shared pages (with MADV_DONTNEED).
 .TP
@@ -179,10 +183,11 @@ The Linux implementation requires that the address
 .I start
 be page-aligned, and allows
 .I length
-to be zero. If there are some parts of the specified address range
+to be zero.
+If there are some parts of the specified address range
 that are not mapped, the Linux version of
 .BR madvise ()
-ignores them and applies the call to the rest (but returns 
+ignores them and applies the call to the rest (but returns
 .B ENOMEM
 from the system call, as it should).
 .SH HISTORY
@@ -194,7 +199,7 @@ POSIX.1b.
 POSIX.1-2001 describes
 .BR posix_madvise ()
 with constants POSIX_MADV_NORMAL, etc.,
-with a behaviour close to that described here. 
+with a behaviour close to that described here.
 There is a similar
 .BR posix_fadvise ()
 for file access.