From: Cyrill Gorcunov <gorcunov@openvz.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: mtk.manpages@gmail.com, akpm@linux-foundation.org,
xemul@parallels.com, linux-man@vger.kernel.org,
linux-kernel@vger.kernel.org,
"Eric W. Biederman" <ebiederm@xmission.com>
Subject: Re: [PATCH 2/2] Add kcmp.2 manpage
Date: Sat, 10 Mar 2012 01:03:42 +0400 [thread overview]
Message-ID: <20120309210342.GN13346@moon> (raw)
In-Reply-To: <4F5A6D09.3050704@zytor.com>
On Fri, Mar 09, 2012 at 12:50:17PM -0800, H. Peter Anvin wrote:
> On 03/09/2012 12:47 PM, Cyrill Gorcunov wrote:
> > +.I v2
> > +, but ordering information is unavailble.
>
> Needs to be:
>
> .IR v2 ,
>
> ... and fix the typo in "unavailable".
>
here we go
Cyrill
---
From: Cyrill Gorcunov <gorcunov@openvz.org>
Date: Sat, 10 Mar 2012 01:03:00 +0400
Subject: [PATCH] Add kcmp.2 manpage
NAME
kcmp - compare if two processes do share a particular kernel resource
SYNOPSIS
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <unistd.h>
#include <linux/kcmp.h>
#include <sys/syscall.h> /* For SYS_xxx definitions */
int syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2);
DESCRIPTION
kcmp() allows to find out if two processes identified by pid1 and pid2
share kernel resources such as virtual memory, file descriptors, file system etc.
The comparison type is one of the following
KCMP_FILE determines whether a file descriptor idx1 in the first process
is the same as another descriptor idx2 in the second process
KCMP_VM compares whether processes share address space
KCMP_FILES compares the file descriptor arrays to see whether the processes
share all files
KCMP_FS compares whether processes share the file system information (the current
umask, working directory, namespace root, etc)
KCMP_SIGHAND compares whether processes share a signal handlers table
KCMP_IO compares whether processes do share I/O context, used mainly for
block I/O scheduling
KCMP_SYSVSEM compares the list of undo operations associated with SYSV semaphores
RETURN VALUE
kcmp was designed to return values suitable for sorting. This is particularly handy
when one have to compare a large number of file descriptors.
The return value is merely a result of simple arithmetic comparison of kernel pointers
(when kernel compares resources, it uses their memory addresses).
The easiest way to explain is to consider an example. Lets say v1 and v2 are the
addresses of appropriate resources, then the return value is one of the following
0 - v1 is equal to v2 , in other words we have a shared resource here
1 - v1 is less than v2
2 - v1 is greater than v2
3 - v1 is not equal to but ordering information is unavailable.
On error, -1 is returned, and errno is set appropriately.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
CC: "Eric W. Biederman" <ebiederm@xmission.com>
CC: "H. Peter Anvin" <hpa@zytor.com>
CC: Pavel Emelyanov <xemul@parallels.com>
---
man2/kcmp.2 | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 107 insertions(+), 0 deletions(-)
create mode 100644 man2/kcmp.2
diff --git a/man2/kcmp.2 b/man2/kcmp.2
new file mode 100644
index 0000000..a8615f1
--- /dev/null
+++ b/man2/kcmp.2
@@ -0,0 +1,107 @@
+.TH KCMP 2 2012-02-01 "Linux" "Linux Programmer's Manual"
+
+.SH NAME
+kcmp \- compare if two processes do share a particular kernel resource
+
+.SH SYNOPSIS
+.nf
+.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
+.B #include <unistd.h>
+.B #include <linux/kcmp.h>
+.BR "#include <sys/syscall.h> " "/* For SYS_xxx definitions */"
+
+.BI "int syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2);"
+.fi
+
+.SH DESCRIPTION
+
+.BR kcmp ()
+allows to find out if two processes identified by
+.IR pid1
+and
+.IR pid2
+share kernel resources such as virtual memory,
+file descriptors, file system etc.
+
+The comparison
+.IR type
+is one of the following
+
+.BR KCMP_FILE
+determines whether a file descriptor
+.IR idx1
+in the first process is the same as another descriptor
+.IR idx2
+in the second process
+
+.BR KCMP_VM
+compares whether processes share address space
+
+.BR KCMP_FILES
+compares the file descriptor arrays to see whether the processes share all files
+
+.BR KCMP_FS
+compares whether processes share the file system information (the current umask,
+working directory, namespace root, etc)
+
+.BR KCMP_SIGHAND
+compares whether processes share a signal handlers table
+
+.BR KCMP_IO
+compares whether processes do share I/O context,
+used mainly for block I/O scheduling
+
+.BR KCMP_SYSVSEM
+compares the list of undo operations associated with SYSV semaphores
+
+.SH "RETURN VALUE"
+.B kcmp
+was designed to return values suitable for sorting.
+This is particularly handy when one have to compare
+a large number of file descriptors.
+
+The return value is merely a result of simple arithmetic comparison
+of kernel pointers (when kernel compares resources, it uses their
+memory addresses).
+
+The easiest way to explain is to consider an example.
+Lets say
+.IR v1
+and
+.IR v2
+are the addresses of appropriate resources, then the return value
+is one of the following
+
+.B 0
+\-
+.IR v1
+is equal to
+.IR v2
+, in other words we have a shared resource here
+
+.B 1
+\-
+.IR v1
+is less than
+.IR v2
+
+.B 2
+\-
+.IR v1
+is greater than
+.IR v2
+
+.B 3
+\-
+.IR v1
+is not equal to
+.IR v2
+, but ordering information is unavailable.
+
+On error, \-1 is returned, and errno is set appropriately.
+
+.SH "CONFORMING TO"
+.BR kcmp ()
+is Linux specific and should not be used in programs intended to be portable.
+.SH "SEE ALSO"
+.BR clone (2)
--
1.7.7.6
next prev parent reply other threads:[~2012-03-09 21:03 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-09 20:47 [PATCH 0/2] prctl.2 and kcmp.2 updated Cyrill Gorcunov
2012-03-09 20:47 ` [PATCH 1/2] prctl.2: Add PR_SET_MM option description Cyrill Gorcunov
2012-03-20 17:21 ` Michael Kerrisk (man-pages)
2012-03-20 17:26 ` Cyrill Gorcunov
2012-03-20 22:24 ` Cyrill Gorcunov
2012-03-24 2:59 ` Michael Kerrisk (man-pages)
2012-03-24 6:17 ` Cyrill Gorcunov
2012-04-15 4:10 ` Michael Kerrisk (man-pages)
2012-04-15 21:55 ` Cyrill Gorcunov
2012-04-15 22:30 ` Michael Kerrisk (man-pages)
2012-04-15 22:34 ` Michael Kerrisk (man-pages)
2012-04-16 6:13 ` Cyrill Gorcunov
2012-04-16 7:33 ` Michael Kerrisk (man-pages)
2012-03-09 20:47 ` [PATCH 2/2] Add kcmp.2 manpage Cyrill Gorcunov
2012-03-09 20:50 ` H. Peter Anvin
2012-03-09 21:03 ` Cyrill Gorcunov [this message]
2012-03-09 21:15 ` H. Peter Anvin
2012-03-09 21:18 ` Cyrill Gorcunov
2012-03-09 21:25 ` Cyrill Gorcunov
-- strict thread matches above, loose matches on Subject: below --
2012-02-29 12:23 [PATCH 0/2] Update man pages for prctl and kcmp syscall Cyrill Gorcunov
2012-02-29 12:23 ` [PATCH 2/2] Add kcmp.2 manpage Cyrill Gorcunov
2012-02-29 12:34 ` Cyrill Gorcunov
2012-02-29 12:41 ` Cyrill Gorcunov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120309210342.GN13346@moon \
--to=gorcunov@openvz.org \
--cc=akpm@linux-foundation.org \
--cc=ebiederm@xmission.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-man@vger.kernel.org \
--cc=mtk.manpages@gmail.com \
--cc=xemul@parallels.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).