DragonFly kernel List (threaded) for 2003-10
Re: another thing I noticed (scheduling?)
Matthew Dillon wrote:
: Just another thing I noticed last night while using DragonflyBSD.
:Interactivity suffers immensely when the cpu is at 100%. I was compiling java
:1.4.1 from ports last night, and trying to use the gimp to resize some pictures
:at the same time. It took 15 seconds to simply load a jpg file (normally it's
:almost instant, even under heavy cpu load). Also, during the compile, just
:starting the gimp, or any other moderately large program would just stall until
:I ctrl-z'ed the build to pause it. The progress bar when gimp loads would
:literally just stop moving until I paused the build.
:This looks to me like a scheduling problem, but I can't remember reading
:anything on the website saying that you changed the scheduler. Anyway, this is
:just to let people know what I saw when using DragonflyBSD. I realize that it's
:very much a development system, so I'm not (yet) expecting it to be anywhere
:near perfect, but telling people what I'm seeing should help fix the problems
:right? Anyway, if there's any other info anyone needs, let me know.
I wouldn't worry about this too much. There are certainly going to be
scheduler priority issues due to a number of temporary mechanisms
currently being used in the code (such as the way critical sections are
employed in the token code), but the userland scheduler is basically
the same as what was in 4.x so the issues are mainly just going to be
cockpit trouble. e.g. I'm probably missing a userland preemption
somewhere which is giving cpu bound processes too much cpu.
Another thing that might help is to turn on profiling:
# cd /sys/i386/conf/ && config -g -p TINDERBOX
# cd /sys/compile/TINDERBOX && make depend && make
... load profile enabled kernel ...
# kgmon -b
# try the compile until CPU reaches 100%
# kgmon -h
# gprof /<path-to-profile-kernel> gmon.out
And then send the resulting file from gprof. It might
help in dealing with the problem.