scheduling

Avi Bryant avi at beta4.com
Sun Sep 7 22:30:54 UTC 2003


I've been doing some experiments with scheduling, and although I don't
know enough of the internals to really know if what I'm seeing is a bug,
I'm seeing different enough behavior on my 1.4 Ghz Athlon from my
400Mhz G4 to raise my suspicions, even given the difference in processor
speed.

As far as I can tell, the G4 (using the 3.5.0b4 VM on Mac OS X) is much
more willing to preempt a Process than the Athlon (using a 3.6-beta6
VM on Debian) is.

A simple demonstration is to do "MessageTally spyOn: [1000000 timesRepeat:
[]]" on both of them.  On the G4, I obtain a number of tallies.  On the
Athlon, none.

I don't get any tallies on the Athlon even if I increase the number of
repetitions to a much larger number (so that it's spinning in a busy loop
for a few seconds), or if I send a simple message or create a Point within
the loop - this calls a primitive, which I would have expected to yield
the processor, but doesn't seem to.

If I do something like "OrderedCollection new" within the loop it does
finally get preempted.

I'm assuming this has the same root cause as the unresponsiveness of the
interrupt key on Linux, and the fact that the low space watcher and stack
watcher don't work well on it.

Anyone have any thoughts?
What happens on Windows, or on a faster Mac?






More information about the Squeak-dev mailing list