Is adding a pthread wrapper for sched_{get,set}attr feasible?

Szabolcs Nagy szabolcs.nagy@arm.com
Wed Aug 22 14:03:00 GMT 2018


On 22/08/18 14:15, Juri Lelli wrote:
> During a recent discussion on linux-rt-users mailing list [1] was
> pointed out that adding a pthreads wrapper around sched_{get,set}attr
> syscalls would make life a little easier (and code cleaner?) for users
> of such interface.
> 
> One can of course easily use the interface by doing gettid() and calling
> syscall() - e.g., [2] - but properly supporting the same interface in
> standard libraries might be to prefer, as it would also align with the
> existing pthread_attr_setschedparam(), etc.
> 
> I researched a bit the archives, but couldn't find anything related to
> this question. Any pointers? Any thoughts about the feasibility of
> adding such support?
> 

a linux specific syscall wrapper may work, but it can be done
without a new api as well:

the existing pthread_attr_setschedparam can be used, but the abi and api
has to change, so new symbol versions and feature test macros have to
be added (similar to the _POSIX_THREAD_SPORADIC_SERVER macro in unistd.h)

glibc misses some members in struct sched_param that are required
for the new linux specific SCHED_* policy. (e.g. posix specifies
further members for SCHED_SPORADIC which is currently not implemented
by linux, but once that's implemented the members have to be added)

then pthread_attr_setschedparam could internally call the new
linux syscalls.

> Thanks!
> 
> Best,
> 
> - Juri
> 
> 1 - https://www.spinics.net/lists/linux-rt-users/msg19337.html
> 2 - https://github.com/scheduler-tools/rt-app/tree/master/libdl
> 



More information about the Libc-alpha mailing list