On Wed, 24 Jun 2015, John D. Baker wrote:
On Tue, 23 Jun 2015, Paul Goyette wrote:Have you established alarm levels for the coretemp0 sensor? (You can show the levels using envstat(8) utility.)I have not done anything with/to/for "coretemp0". On this machine, 'envstat' reports: $ envstat Current CritMax WarnMax WarnMin CritMin Unit [coretemp0] cpu0 temperature: 47.000 degC That's the entirety of the 'envstat' output. Looks a bit strange compared to some of the other machines I've observed.
Interesting. There are no event limits set, so there should never have been any events queued to the sensor device's workqueue. So I'm unsure how the count got to be non-zero in sme->sme_busy in the first place.
A backtrace would definitely be useful. It would also be useful to determine if the sme_events_worker() thread is still running.If it happens again, I'll be sure to transcribe a backtrace.
Thanks. And if you should find a way to reproduce-it-at-will, that's even better! (Well, I can always hope, can't I?)
There is a rather "interesting" mutex-dance in sme_check_events() about which I need to think: mutex_enter(wq_mutex) check for empty wq mutex_exit(wq_mutex) mutex_enter(global_sysmon_mutex) mutex_enter(wq_mutex) queue up the wq entries mutex_exit(wq_mutex) check for low_power condition mutex_exit(global_sysmon_mutex) I'm pretty sure this can be reduced a bit: mutex_enter(global_sysmon_mutex) mutex_enter(wq_mutex) check for empty wq queue up the wq entries mutex_exit(wq_mutex) check for low_poer condition mutex_exit(global_sysmon_mutex) ------------------------------------------------------------------------- | Paul Goyette | PGP Key fingerprint: | E-mail addresses: | | (Retired) | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com | | Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd.org | -------------------------------------------------------------------------