On Fri, Nov 14, 2008 at 10:52 AM, Bert Wesarg <bert.wesarg@xxxxxxxxxxxxxx> wrote: > On Fri, Nov 14, 2008 at 16:38, Michael Kerrisk > <mtk.manpages@xxxxxxxxxxxxxx> wrote: >> [CC += "Paul Jackson" <pj@xxxxxxx>, who might want to Ack the patch below] >> >>>> This might be obvious to all of you, but it wasn't to me... The CPU set used >>>> for the affinity is the intersection of the set passed to >>>> pthread_setaffinity_np() and the set of processors supported by the >>>> kernel... >>>> >>>> That's why your example shall work, even if the system where it runs has >>>> less than 8 processors. >>> >>> It's true. The page should say something to make this clearer. I >>> added this text to NOTES >>> >>> After a call to pthread_setaffinity_np(3), the set of >>> CPUs on which the thread will actually run is the inter- >>> section of the set specified in the cpuset argument and >>> the set of CPUs actually present on the system. The sys- >>> tem may further restrict the set of CPUs on which the >>> thread runs if the "cpuset" mechanism described in >>> cpuset(7) is being used. These restrictions on the >>> actual set of CPUs on which the thread will run are >>> silently imposed by the kernel. >> >> Of course, the sched_setaffinity.2 page also deserves similar text. I >> made the change below. >> >> Look ok? > Yes. Thanks. -mtk >> --- a/man2/sched_setaffinity.2 >> +++ b/man2/sched_setaffinity.2 >> >> @@ -122,7 +122,10 @@ A supplied memory address was invalid. >> .B EINVAL >> The affinity bit mask >> .I mask >> -contains no processors that are physically on the system. >> +contains no processors that are currently physically on the system >> +and permitted to the process according to any restrictions that >> +may be imposed by the "cpuset" mechanism described in >> +.BR cpuset (7). >> .TP >> .B EINVAL >> .RB ( sched_getaffinity () >> @@ -157,6 +160,19 @@ argument was removed, but was then restored in glibc 2.3.4, >> with type >> .SH "CONFORMING TO" >> These system calls are Linux-specific. >> .SH "NOTES" >> +After a call to >> +.BR sched_setaffinity (), >> +the set of CPUs on which the process will actually run is >> +the intersection of the set specified in the >> +.I mask >> +argument and the set of CPUs actually present on the system. >> +The system may further restrict the set of CPUs on which the process >> +runs if the "cpuset" mechanism described in >> +.BR cpuset (7) >> +is being used. >> +These restrictions on the actual set of CPUs on which the process >> +will run are silently imposed by the kernel. >> + >> .BR sched_setscheduler (2) >> has a description of the Linux scheduling scheme. >> .PP >> > -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ git://git.kernel.org/pub/scm/docs/man-pages/man-pages.git man-pages online: http://www.kernel.org/doc/man-pages/online_pages.html Found a bug? http://www.kernel.org/doc/man-pages/reporting_bugs.html -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html