ULE Scheduler

Момчил Иванов momchil at xaxo.eu
Thu Jun 7 01:01:11 UTC 2012


Hi,

today I had a really strange experience with my laptop. I ran 2 lisp
processes each consuming 100% CPU (i.e. in top, 100% CPU means one
full core), since I have 2 cores, it means full processor load. I was
moreover running Emacs and Opera, but that is more or less irrelevant
since they consume negligible amount of CPU time. At some point my
Xorg died and I was dropped in the terminal and the first thought
through my mind was that my laptop just said "goodbye, it was nice
meeting you after 4+ years". A second later I saw:

Jun  7 01:00:06 t61 kernel: acpi_tz1: WARNING - current temperature (100.1C) exceeds safe limits

which was a sign of relief: "oh, maybe the fan got busted...". So I
took a screw driver and disassembled my Lenovo T61. Cleaning all the
dust and putting a fresh amount of thermal fluid (did it 1 year ago),
I booted again and started both processes again and took a look at the
temperature. It was constantly increasing from about 33 C. I took a
look at top and saw that both processes were wildly jumping accross
the cores, i.e. CPU0 and CPU1.

So before reading all the papers about the ULE scheduler and the
source code, I would like to as a simple question: is it that stupid?

I mean, there are just 2 processes running (except of top, X and
... which should be scheduled occasionally) on 2 cores of one physical
processor. Why sould each be scheduled on a different core each time?

I did cpuset to pin each to a specific core and got to about a
constant temperature of 72 C. I am affraid to "cpuset -l 0,1 -p <...>"
both of them since I might again get at 100 C.

Is there some remedy?

Please CC me, since I am not subscribed to the list.

Regards,
Momchil


More information about the freebsd-stable mailing list