hey,

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).

cheers
 simon

--
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   / \

Reply via email to