dual core laptop running unbearably hot

Simon 'corecode' Schubert corecode at fs.ei.tum.de
Mon Dec 25 11:56:17 PST 2006


when trying to get dragonfly running smoothly on my new core2duo laptop, i noticed that the cpu runs hot, no matter what i do (apci throttle, est).  under windows this does not happen.  i don't know yet about linux/other bsds, i did not yet spend so much time to investigate.

however, something strikes me as odd:  we don't HLT a cpu which is waiting for the mp lock, but instead spin for it?  that seems very wrong.  i think in this case we should just halt the cpu until something "new" is happening, i.e. until the mp lock becomes available or an interrupt occurs.

why do we spin when there is an IPI or an interrupt queued?  why would that ever happen while in lwkt_switch?  or is this just a way to process these evens in the idle thread (by preempting the idle thread as soon as it goes out of the critical secion of the lwkt scheduler)?

as an unrelated issue:  we just have one set of global variables representing the cpu identification.  i think cpus also have to be integrated into the device tree, so that we can maintain state for multiple cpus seperately (for example est has some strange notion of unique vs shared MSRs).

Serve - BSD     +++  RENT this banner advert  +++    ASCII Ribbon   /"\
Work - Mac      +++  space for low €€€ NOW!1  +++      Campaign     \ /
Party Enjoy Relax   |   http://dragonflybsd.org      Against  HTML   \
Dude 2c 2 the max   !   http://golden-apple.biz       Mail + News   / \

More information about the Kernel mailing list