summaryrefslogtreecommitdiffstats
path: root/man2/process_madvise.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/process_madvise.2')
-rw-r--r--man2/process_madvise.2209
1 files changed, 0 insertions, 209 deletions
diff --git a/man2/process_madvise.2 b/man2/process_madvise.2
deleted file mode 100644
index 1cee5be24..000000000
--- a/man2/process_madvise.2
+++ /dev/null
@@ -1,209 +0,0 @@
-.\" Copyright (C) 2021 Suren Baghdasaryan <surenb@google.com>
-.\" and Copyright (C) 2021 Minchan Kim <minchan@kernel.org>
-.\"
-.\" SPDX-License-Identifier: Linux-man-pages-copyleft
-.\"
-.\" Commit ecb8ac8b1f146915aa6b96449b66dd48984caacc
-.\"
-.TH process_madvise 2 (date) "Linux man-pages (unreleased)"
-.SH NAME
-process_madvise \- give advice about use of memory to a process
-.SH LIBRARY
-Standard C library
-.RI ( libc ", " \-lc )
-.SH SYNOPSIS
-.nf
-.BR "#include <sys/mman.h>" " /* Definition of " MADV_* " constants */"
-.BR "#include <sys/syscall.h>" " /* Definition of " SYS_* " constants */"
-.BR "#include <sys/uio.h>" " /* Definition of " "struct iovec" " type */"
-.B #include <unistd.h>
-.PP
-.BI "ssize_t syscall(SYS_process_madvise, int " pidfd ,
-.BI " const struct iovec *" iovec ", size_t " vlen \
-", int " advice ,
-.BI " unsigned int " flags ");"
-.fi
-.PP
-.IR Note :
-glibc provides no wrapper for
-.BR process_madvise (),
-necessitating the use of
-.BR syscall (2).
-.\" FIXME: See <https://sourceware.org/bugzilla/show_bug.cgi?id=27380>
-.SH DESCRIPTION
-The
-.BR process_madvise ()
-system call is used to give advice or directions to the kernel about the
-address ranges of another process or of the calling process.
-It provides the advice for the address ranges described by
-.I iovec
-and
-.IR vlen .
-The goal of such advice is to improve system or application performance.
-.PP
-The
-.I pidfd
-argument is a PID file descriptor (see
-.BR pidfd_open (2))
-that specifies the process to which the advice is to be applied.
-.PP
-The pointer
-.I iovec
-points to an array of
-.I iovec
-structures, described in
-.BR iovec (3type).
-.PP
-.I vlen
-specifies the number of elements in the array of
-.I iovec
-structures.
-This value must be less than or equal to
-.B IOV_MAX
-(defined in
-.I <limits.h>
-or accessible via the call
-.IR sysconf(_SC_IOV_MAX) ).
-.PP
-The
-.I advice
-argument is one of the following values:
-.TP
-.B MADV_COLD
-See
-.BR madvise (2).
-.TP
-.B MADV_COLLAPSE
-See
-.BR madvise (2).
-.TP
-.B MADV_PAGEOUT
-See
-.BR madvise (2).
-.TP
-.B MADV_WILLNEED
-See
-.BR madvise (2).
-.PP
-The
-.I flags
-argument is reserved for future use; currently, this argument must be
-specified as 0.
-.PP
-The
-.I vlen
-and
-.I iovec
-arguments are checked before applying any advice.
-If
-.I vlen
-is too big, or
-.I iovec
-is invalid,
-then an error will be returned immediately and no advice will be applied.
-.PP
-The advice might be applied to only a part of
-.I iovec
-if one of its elements points to an invalid memory region in the
-remote process.
-No further elements will be processed beyond that point.
-(See the discussion regarding partial advice in RETURN VALUE.)
-.PP
-.\" commit 96cfe2c0fd23ea7c2368d14f769d287e7ae1082e
-Starting in Linux 5.12,
-permission to apply advice to another process is governed by
-ptrace access mode
-.B PTRACE_MODE_READ_FSCREDS
-check (see
-.BR ptrace (2));
-in addition,
-because of the performance implications of applying the advice,
-the caller must have the
-.B CAP_SYS_NICE
-capability
-(see
-.BR capabilities (7)).
-.SH RETURN VALUE
-On success,
-.BR process_madvise ()
-returns the number of bytes advised.
-This return value may be less than the total number of requested bytes,
-if an error occurred after some
-.I iovec
-elements were already processed.
-The caller should check the return value to determine whether a partial
-advice occurred.
-.PP
-On error, \-1 is returned and
-.I errno
-is set to indicate the error.
-.SH ERRORS
-.TP
-.B EBADF
-.I pidfd
-is not a valid PID file descriptor.
-.TP
-.B EFAULT
-The memory described by
-.I iovec
-is outside the accessible address space of the process referred to by
-.IR pidfd .
-.TP
-.B EINVAL
-.I flags
-is not 0.
-.TP
-.B EINVAL
-The sum of the
-.I iov_len
-values of
-.I iovec
-overflows a
-.I ssize_t
-value.
-.TP
-.B EINVAL
-.I vlen
-is too large.
-.TP
-.B ENOMEM
-Could not allocate memory for internal copies of the
-.I iovec
-structures.
-.TP
-.B EPERM
-The caller does not have permission to access the address space of the process
-.IR pidfd .
-.TP
-.B ESRCH
-The target process does not exist (i.e., it has terminated and been waited on).
-.PP
-See
-.BR madvise (2)
-for
-.IR advice -specific
-errors.
-.SH STANDARDS
-Linux.
-.SH HISTORY
-Linux 5.10.
-.\" commit ecb8ac8b1f146915aa6b96449b66dd48984caacc
-.PP
-Support for this system call is optional,
-depending on the setting of the
-.B CONFIG_ADVISE_SYSCALLS
-configuration option.
-.PP
-When this system call first appeared in Linux 5.10,
-permission to apply advice to another process was entirely governed by
-ptrace access mode
-.B PTRACE_MODE_ATTACH_FSCREDS
-check (see
-.BR ptrace (2)).
-This requirement was relaxed in Linux 5.12 so that the caller didn't require
-full control over the target process.
-.SH SEE ALSO
-.BR madvise (2),
-.BR pidfd_open (2),
-.BR process_vm_readv (2),
-.BR process_vm_write (2)