CPU_SET.3: Document CPU_ALLOC()/CPU_ALLOC_SIZE() bug

These macros return twice what they should because of thinko
in glibc 2.8 and earlier.  The bug is fixed for glibc 2.9.
http://sourceware.org/bugzilla/show_bug.cgi?id=7029

Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Michael Kerrisk 2008-11-13 17:47:56 -05:00
parent d69305f691
commit b62e354822
1 changed files with 11 additions and 6 deletions

View File

@ -177,12 +177,6 @@ in the range 0 to
Return the size in bytes of the CPU set that would be needed to
hold CPUs in the range 0 to
.IR num_cpus-1 .
.\" FIXME . track this bug
.\" Currently (glibc 2.8), CPU_ALLOC_SIZE() returns double the
.\" value that it should. This also causes CPU_ALLOC() to allocate
.\" twice as much memory as is required.
.\" http://sourceware.org/bugzilla/show_bug.cgi?id=7029
.\" Eventually, write this up in BUGS.
This macro provides the value that can be used for
.I setsize
in the
@ -305,6 +299,17 @@ main(int argc, char *argv[])
exit(EXIT_SUCCESS);
}
.fi
.SH BUGS
On 32-bit platforms with glibc 2.8 and earlier,
.BR CPU_ALLOC ()
allocates twice as much space as is required, and
.BR CPU_ALLOC_SIZE ()
returns a value twice as large as it should.
The only consequences for most programs is wasted space,
and slightly less efficient operation of the macros that
operate on dynamically allocated CPU sets.
These bugs are fixed in glibc 2.9.
.\" http://sourceware.org/bugzilla/show_bug.cgi?id=7029
.SH "SEE ALSO"
.BR sched_setaffinity (2),
.BR pthread_attr_setaffinity_np (3),