Colin McCabe | 5 Jun 2012 00:43
Picon
Gravatar

[PATCH] clarify the multithreaded behavior of ioprio_set

From: Colin Patrick McCabe <cmccabe@...>

Signed-off-by: Colin McCabe <cmccabe@...>
---
 man2/ioprio_set.2 |   25 ++++++++++++++++++++++---
 1 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/man2/ioprio_set.2 b/man2/ioprio_set.2
index 37b4dc1..807c655 100644
--- a/man2/ioprio_set.2
+++ b/man2/ioprio_set.2
 <at>  <at>  -36,13 +36,13  <at>  <at>  The
 and
 .BR ioprio_set ()
 system calls respectively get and set the I/O scheduling class and
-priority of one or more processes.
+priority of one or more threads.

 The
 .I which
 and
 .I who
-arguments identify the process(es) on which the system
+arguments identify the thead(s) on which the system
 calls operate.
 The
 .I which
 <at>  <at>  -52,7 +52,7  <at>  <at>  is interpreted, and has one of the following values:
 .TP
 .B IOPRIO_WHO_PROCESS
 .I who
-is a process ID identifying a single process.
+is a process ID or thread ID identifying a single process or thread.
 .TP
 .B IOPRIO_WHO_PGRP
 .I who
 <at>  <at>  -186,6 +186,25  <at>  <at>  kernel 2.6.13.
 .SH "CONFORMING TO"
 These system calls are Linux-specific.
 .SH NOTES
+Two or more processes or threads can share an I/O context.  This will be the
+case when
+.BR clone (2)
+was called with the
+.B CLONE_IO
+flag.
+
+However, by default, the distinct threads of a process will
+.B not
+share the same I/O context.  This means that if you want to change the I/O
+priority of all threads in a process, you may need to call
+.BR ioprio_set()
+on all of the threads.  The thread ID you would need for this operation is that
+which is returned by
+.BR gettid(),
+not
+.BR pthread_self()
+or another userspace API.
+
 Glibc does not provide wrapper for these system calls; call them using
 .BR syscall (2).

--

-- 
1.7.7

--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo@...
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Gmane