sched_setscheduler returns EPERM instead of EINVAL when sched_priority is out of range

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

sched_setscheduler returns EPERM instead of EINVAL when sched_priority is out of range

Ali Abdallah
Hello,

I got quite confused when I was getting EPERM from the sched_setscheduler
system call on FreeBSD 11.1, thinking at the beginning that I had a
permission problem (program uses setuid, and it is launched by normal
user). After, I realized that my sched_param.sched_priority value was
simply out of range.

According to the documentation, [EINVAL] should be returned if the value of
the policy argument is invalid, or one or more parameters contained in
param is outside the valid range!

In ksched.c line 180, the ksched_setscheduler functions returns EPERM when
(param->sched_priority >= P1B_PRIO_MIN && param->sched_priority <=
P1B_PRIO_MAX), on other Unices, I get EINVAL as expected.

Is there is a reason for why FreeBSS handles this differently?

Cheers,
Ali
_______________________________________________
[hidden email] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[hidden email]"