nice really nice?
Robert Collins
rbcollins@cygwin.com
Tue Nov 26 14:18:00 GMT 2002
On Wed, 2002-11-27 at 00:25, thomas wrote:
> Where do the -15 and +15 come from and what do they actually map to?
They are windows priorities. They come from the win32 headers. We don't
map to *either* of them, because Cygwin is not suitable for running
programs at realtime priority and IIRC there was some iisue about
running at idle too.
> Also THREAD_PRIORITY_TIME_CRITICAL is not mapped in sched.cc to any UNIX
> priority so if an application calls
See above.
> SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS)
> SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL)
>
> what happens actually? As you already say in sched.cc: "We don't want
> process's going realtime" i guess it doesn't run at -20 but some other
> priority.
If you do that, expect to get a hung system real fast. Windows doesn't
avoid priority inversions, and the *only* programs that should run at
realtime priority are those designed for it. Cygwin is a general purpose
tool, and internally not quite up to running at realtime when I wrote
that mapping logic.
> > those tests show nothing other than the time it takes to push the iso
> > through to a bitbucket. Unless there is serious other load on the CPU,
> > the time *should* be constant.
>
> I've run the test many times and they all give the same result,
> switching from nice -0 to nice --1 always gives a horrible delay, the
> cpu is not doing any other work at all during the test. But this seems
> to be an application specific problem and we're still investigating
> this.
What happens with nice -20 ?
> While i was writing this i had the idea to do the same test with cat
> instead of mkisofs with a quite interesting result:
>
> $ time cat test.iso | nice -1 dd of=/dev/null
> real 0m7.171s
> user 0m2.466s
> sys 0m4.733s
>
> $ time cat test.iso | nice -0 dd of=/dev/null
> real 0m7.205s
> user 0m2.794s
> sys 0m4.467s
>
> $ time cat test.iso | nice --1 dd of=/dev/null
> real 1m51.428s
> user 0m0.107s
> sys 0m0.015s
Ah, I see it now, you expect a higher priority, and get less
performance.
What happens if you do this:
time nice --1 cat test.iso | nice --1 dd of=/dev/null ?
> I've briefly looked through the pre-1.3x sources and i can't find
> sched.cc there or sth. of the like, how was it handled back then?
sched.cc It was introduced around 1.1 IIRC. I may be remembering wrongly
:}. CVS is your friend.
Rob
--
---
GPG key available at: http://users.bigpond.net.au/robertc/keys.txt.
---
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://cygwin.com/pipermail/cygwin/attachments/20021126/9c550860/attachment.sig>
More information about the Cygwin
mailing list