On 2023-10-14 07:47, Eliot Moss via Cygwin wrote:
On 10/14/2023 7:39 AM, Cedric Blancher via Cygwin wrote:
On Fri, 11 Aug 2023 at 19:14, Brian Inglis wrote:
On 2023-08-11 09:44, Cedric Blancher via Cygwin wrote:
How can we set the scheduler priority for a Cygwin process to "higher"
than normal on start?
Basically we want a Cygwin compatible script version of the Windows
task manager feature Name/PID--->Details--->Set priority--->Higher
Pretend the system is BSD or Linux and web search e.g. SO for that capability,
facility, or feature, then check Cygwin with Search Packages or:
$ cygcheck -p usr/bin/nice
Found 6 matches for usr/bin/nice
I know about nice and renice, but I don't see whether it is working or not.
coreutils-debuginfo-8.26-2 - coreutils-debuginfo: Debug info for coreutils
...
coreutils-9.0-1 - coreutils: GNU core utilities (includes fileutils, sh-utils
and textutils)
$ cygcheck -p usr/bin/renice
Found 6 matches for usr/bin/renice
util-linux-debuginfo-2.32.1-1 - util-linux-debuginfo: Debug info for util-linux
util-linux-debuginfo-2.33.1-1 - util-linux-debuginfo: Debug info for util-linux
util-linux-debuginfo-2.33.1-2 - util-linux-debuginfo: Debug info for util-linux
util-linux-2.32.1-1 - util-linux: Collection of basic system utilities
util-linux-2.33.1-1 - util-linux: Collection of basic system utilities
util-linux-2.33.1-2 - util-linux: Collection of basic system utilities
$ cygcheck -p usr/bin/chrt
Found 2 matches for usr/bin/chrt
util-linux-debuginfo-2.33.1-2 - util-linux-debuginfo: Debug info for util-linux
util-linux-2.33.1-2 - util-linux: Collection of basic system utilities
$ cygcheck -p usr/bin/taskset
Found 2 matches for usr/bin/taskset
util-linux-debuginfo-2.33.1-2 - util-linux-debuginfo: Debug info for util-linux
util-linux-2.33.1-2 - util-linux: Collection of basic system utilities
so you may need to install util-linux (coreutils is already installed as a base
package for Cygwin) then:
         $ man nice renice taskset chrt
chrt does not work, the syscalls for realtime seem to be not implemented.
You may need to run these from an elevated admin shell for other user ids,
unowned processes, or higher (negative) priority.
It has been years since I tried these so can no longer remember if -20
corresponds to Windows "RealTime" or if you need to use PowerShell to set that e.g.
         $proc   = Get-Process -ProcessName "..."
         $proc.PriorityClass     = "RealTime"
and that needs to be done from an elevated admin (Power)Shell.
Of course, never set that on any system except on a very idle, very I/O bound,
well tested process, such as ntpd, that needs stably fast interrupt service and
non-preemptible cpu access for ms every few seconds, preferably on a single or
few cpus to which affinity is set.
Is there anything in /proc which can tell me the current *Windows*
scheduler priority level? Or a command line tool?
I recall getting taskset going in util-linux a while back, but I don't
recall working on priority related things.  You could look into the
cygwin source code to see how Windows priorities relate to the priority
values in Cygwin.  Then you may be able just to use /proc/[pid]/stat
read out what you want.

ISTR testing nice/renice, and found it was a simple priority mapping to/from Unix to Windows Idle to RealTime (at the time, process Affinity was not supported, so went with a PowerShell startup script instead); see:

https://cygwin.com/git/?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/sched.cc#l107

https://cygwin.com/git/?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/sched.cc#l234

https://cygwin.com/git/?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/sched.cc#l277

They are documented in proc(5) /proc/PID/stat fields 18 priority and 19 nice typically 20 and 0, as shown by `top` PR and NI, shown by `procps -l` as 80 and 0, and not shown by Cygwin `ps`.

--
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                -- Antoine de Saint-Exupéry

--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to