cpuset_t interfaces
Ulrich Drepper
drepper@redhat.com
Thu Mar 18 05:57:00 GMT 2004
I intend to change the interfaces taking a cpuset_t parameter.
Currently we have
extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
__const cpu_set_t *__cpuset);
extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
cpu_set_t *__cpuset);
and the sched_[sg]etaffinity interfaces which have no prototype yet.
The problem is the limited cpuset_t size. Just thinking about HT
multicore processors in multi-processor machines should be enough that
1024 virtual processors isn't that hard to reach.
Therefore the interface should include a size parameter:
extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
__const cpu_set_t *__cpuset,
size_t size);
extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
cpu_set_t *__cpuset,
size_t size);
This way the data structure can be expanded if necessary.
The interfaces are in very little use today. We keep the old interfaces
and make them simple wrappers with a fixed size of 128 bytes.
Unless I hear well-founded objections I'll make the change tomorrow.
--
â§ Ulrich Drepper â§ Red Hat, Inc. â§ 444 Castro St â§ Mountain View, CA â
More information about the Libc-hacker
mailing list