[Jack-Devel] Thread realtime priority

Adrian Knoth adi at drcomp.erfurt.thur.de
Mon Jan 9 19:20:05 CET 2017

On Sun, Jan 08, 2017 at 07:25:47PM -0800, Yuri wrote:

> jackd on FreeBSD calls pthread_setschedparam(thread, SCHED_FIFO, &rtparam)
> with rtparam.sched_priority = 10.
> I am wondering where does 10 come from? The range for SCHED_FIFO is 0 .. 31,

On Linux, it's 1 .. 99.

> as returned by sched_get_priority_min() and sched_get_priority_max(). The
> value 10 seems wrong, since the fastest priority is 0, the slowest is 31.

On Linux, higher is definitely better:

   "Processes with numerically higher priority values are scheduled
    before processes  with  numerically  lower  priority  values."

> In controlapi.c sched_get_priority_min()/sched_get_priority_max() are called
> for OpenBSD. For this purpose FreeBSD should be the same. So it should be
> #ifndef __OpenBSD__ && defined(__FreeBSD__).

Please send a patch or ideally a pull request on github. It's easier to

> Another problem is that FreeBSD doesn't allow to set thread priorities
> for non-root users, but jackd is supposed to run by the regular user.

You can always run without realtime priorities (-r or --no-realtime).

I'm surprised FreeBSD doesn't use PAM to allow users to call SCHED_FIFO.
You're sure about this?


mail: adi at thur.de  	http://adi.thur.de	PGP/GPG: key via keyserver

More information about the Jackaudio mailing list