On Dec 3 10:20, Christian Franke wrote: > Brian Inglis wrote: > > On 2024-12-02 11:28, ASSI wrote: > > > Christian Franke writes: > > > > + nice value sched_priority Windows priority class > > > > + 12...19 1....6 IDLE_PRIORITY_CLASS > > > > + 4...11 7...12 BELOW_NORMAL_PRIORITY_CLASS > > > > + -4....3 13...18 NORMAL_PRIORITY_CLASS > > > > + -12...-5 19...24 ABOVE_NORMAL_PRIORITY_CLASS > > > > + -13..-19 25...30 HIGH_PRIORITY_CLASS > > > > + -20 31...32 REALTIME_PRIORITY_CLASS > > > > > > That mapping looks odd… care to explain why the number of nice values > > > and sched_priorities doesn't match up for each priority class? 39 > > > possible values for one can't match to 32 for the other of course, but > > > which ones are skipped and why? > > > > See also miscfuncs.cc which maps nice<->winprio with a 40 entry table, > > and cygwin-doc proc(5) or cygwin-ug-net/proc.html which explains the > > mapping to scheduler priorities and policies. > > No *_PRIORITY_CLASS is mentioned in current newlib-cygwin/winsup/doc/*. > > > > > > Also relevant may be man-pages-posix sched.h(0p), man-pages-linux > > sched(7) and proc_pid_stat(5). > > > > You may also wish to consider whether SCHED_SPORADIC should be somewhat > > supported for POSIX compatibility, and SCHED_IDLE, SCHED_BATCH, > > SCHED_DEADLINE for Linux compatibility? > > SCHED_IDLE: Ignore nice value and set IDLE_PRIORITY_CLASS ?
Would make sense, I guess. > SCHED_BATCH: Reduced mapping, e.g. nice=0 -> BELOW_NORMAL_PRIORITY_CLASS ? Sounds good. > SCHED_SPORADIC, SCHED_DEADLINE: ? We can't model SCHED_DEADLINE in Windows. > The current newlib/libc/include/sys/sched.h only defines SCHED_OTHER, > SCHED_FIFO, SCHED_RR and SCHED_SPORADIC. The latter is guarded by > _POSIX_SPORADIC_SERVER which is only set for RTEMS (#ifdef __rtems__) in > features.h. SCHED_SPORADIC is a bit of a problem. It requires extension of the sched_param struct with values we're not able to handle. Also, SCHED_SPORADIC doesn't exist in Linux either, so why bother. Corinna