Corinna Vinschen wrote:
Hi Christian,

On Dec  6 17:52, Christian Franke wrote:
A first attempt to add SCHED_BATCH.

Still TODO:
- Add SCHED_IDLE/BATCH to winsup/doc/posix.xml
- Provide correct values in (18) and (19) of /proc/PID/stat for SCHED_BATCH.
- Provide correct value in (18) of /proc/PID/stat for SCHED_FIFO/RR.

--
Regards,
Christian

 From 0822917252fdade3edc240b4fbfd3c0f47ef1deb Mon Sep 17 00:00:00 2001
From: Christian Franke <christian.fra...@t-online.de>
Date: Fri, 6 Dec 2024 17:32:29 +0100
Subject: [PATCH] Cygwin: sched_setscheduler: accept SCHED_BATCH

Add SCHED_BATCH to <sys/sched.h>.  SCHED_BATCH is similar to SCHED_OTHER,
except that the nice value is mapped to a one step lower Windows priority.
Rework the mapping functions to ease the addition of this functionality.

Signed-off-by: Christian Franke <christian.fra...@t-online.de>
---
  newlib/libc/include/sys/sched.h          |   8 ++
  winsup/cygwin/local_includes/miscfuncs.h |   4 +-
  winsup/cygwin/miscfuncs.cc               | 155 +++++++++++++----------
  winsup/cygwin/release/3.6.0              |  11 +-
  winsup/cygwin/sched.cc                   |  15 ++-
  winsup/cygwin/syscalls.cc                |  20 +--
  6 files changed, 129 insertions(+), 84 deletions(-)

diff --git a/newlib/libc/include/sys/sched.h b/newlib/libc/include/sys/sched.h
index c96355c24..265215211 100644
--- a/newlib/libc/include/sys/sched.h
+++ b/newlib/libc/include/sys/sched.h
@@ -38,6 +38,14 @@ extern "C" {
  #define SCHED_FIFO     1
  #define SCHED_RR       2
+#if __GNU_VISIBLE
+#if defined(__CYGWIN__)
+#define SCHED_BATCH    0
+#else
+#define SCHED_BATCH    3
+#endif
+#endif
I would prefer that SCHED_BATCH gets its own, single value.
There's no good reason to add another ifdef for that.  Why
not just #define SCHED_BATCH 6?

The idea was to keep the non-Cygwin value in sync with Linux.
https://github.com/torvalds/linux/blob/fac04ef/include/uapi/linux/sched.h#L111
Of course we could drop this idea and use 6.

Reply via email to