summaryrefslogtreecommitdiff
path: root/sys/dev/sysmon
AgeCommit message (Collapse)Author
2018-02-08Typos.dholland
2017-10-25Use C99 initializer for filteropsmaya
Mostly done with spatch with touchups for indentation @@ expression a; identifier b,c,d; identifier p; @@ const struct filterops p = - { a, b, c, d + { + .f_isfd = a, + .f_attach = b, + .f_detach = c, + .f_event = d, };
2017-09-11Improve tracking of the state of an event's callout, and protect allpgoyette
queries or modifications of the state with the sme_mtx mutex. Detach the rndsrc before re-attaching it (with potentially new values). Clean up some lock-ordering issues. And a couple of KNF issues for good measure! Should address PR kern/52533 XXX Pullup-8 along with the previous fixes from msaitoh@ XXX http://mail-index.netbsd.org/source-changes/2017/09/06/msg088028.html ~ ~
2017-09-06 Fixes a problem that some driver(e.g. acpitz(4) or coretemp(5)) whichmsaitoh
use sysmon_envsys sleep waiting at "rndsrc" when "drvctl -d". Don't call rnd_detach_source() in sme_remove_event() which is called from sme_event_unregister_all(). Instead, call rnd_detach_source() in sysmon_envsys_sensor_detach() and call sysmon_envsys_sensor_detach() before sme_event_unregister_sensor(). Each sensor(envsys_data) has each rnd_src, but some sme_events point to the same rnd_src in a sensor. Calling rnd_detach_souce() twice with the same rnd_src brokes a reference count in rnd_src. OK'd by pgoyette@.
2017-06-01remove checks for failure after memory allocation calls that cannot fail:chs
kmem_alloc() with KM_SLEEP kmem_zalloc() with KM_SLEEP percpu_alloc() pserialize_create() psref_class_create() all of these paths include an assertion that the allocation has not failed, so callers should not assert that again.
2015-12-14sysmon's components need to be MODULE_CLASS_DRIVER so they will getpgoyette
initialized before we configure/initialize any devices that interact with them. Thanks, marty!
2015-12-13Note the sensor number in the error output. Useful for drivers addingjdc
multiple sensors.
2015-10-15As proposed inbouyer
https://mail-index.netbsd.org/tech-kern/2015/10/14/msg019511.html don't sleep on sme->sme_mtx in the callout but use mutex_tryenter() and just reschedule the callout if we can't get the mutex now. This fixes a deadlock which can happen if the backed wants to sleep with timeout (e.g. cv_timedwait()) as the backed is called with sme->sme_mtx held. This is a stopgap measure for netbsd-7; sysmon should be changed to not sleep (or call a backend which will sleep) with mutexes held.
2015-08-24to garnish, dust with _KERNEL_OPTpooka
2015-06-23Separate the two conditions for the KASSERT, so we can tell whichpgoyette
one occurred.
2015-06-23Fix the KASSERT - we want to make sure that _both_ pointers are non-NULL,pgoyette
n ot just that one or the other is non-NULL!
2015-06-05Move callout_init to wdog_preinitmatt
2015-05-12Finish work started in previous commit. Ensure that initializationpgoyette
code is only called once for built-in variants of the module.
2015-05-12Don't manipulate the autoconfig databases for built-in module.pgoyette
Thanks, christos!
2015-05-05Optimize a bit - don't re-enter the mutex if we're just going to exit.pgoyette
While here, remove some parens around a return value.
2015-05-05If module_autoload() returns an error, just return that value insteadpgoyette
of overwriting with ENODEV. Thanks, christos!
2015-05-04If autoload of the subcomponent module fails, don't try to call itspgoyette
open routine. Just return an error. Hopefully this will fix the recently reported issues with atf tests running on xen guest.
2015-04-29At suggestion from riastradh@ ...pgoyette
Remove auto_configure(9) goop from sysmon device. It does make things a bit cleaner, and also reduces source code by about 10%. Tested via QEMU with no obvious side-effects.
2015-04-28sysmon_task_queue_sched needs to RUN_ONCE(tq_preinit) as well, it canmartin
be called from sysmon_envsys_register() early.
2015-04-27Replace a home-grown run-once implementation with the real RUN_ONCE()pgoyette
2015-04-25Remove another debug printf() that snuck in.pgoyette
2015-04-25Handle early initialization requirements - thanks martin@ and otherspgoyette
2015-04-25Correctly check return status when registering with pmfpgoyette
2015-04-25Fix typo - thanks, riz@pgoyette
2015-04-25Register the sysmon pseudo-device with power management framework so wepgoyette
can properly suspend the system. Thanks, mrg, for pointing this out.
2015-04-25make things boot again, from martin.christos
2015-04-25Use tabs for indentation.pgoyette
2015-04-25Release the mutex in the error path.pgoyette
2015-04-24We only need the _cd when we are a module.christos
2015-04-24The sysmon_envsys module also depends on sysmon_power (for delivery ofpgoyette
sensor events to userland).
2015-04-24With new (corrected) configuration declarations file, the cdevsw ispgoyette
already included by config. So, for built-in sysmon module we don't need to add the cdevsw to the table.
2015-04-24Update configuration definitions for new sysmonpgoyette
2015-04-24Remove a left-over debugging printf()pgoyette
2015-04-24This really does need to return an error code, so change thepgoyette
sysmon_task_queue_fini() function to have a non-void type.
2015-04-24It's a function returning void; don't return an error code.agc
2015-04-23Update module dependencies for all the existing modules that depend on ↵pgoyette
sysmon components.
2015-04-23Modularize sysmon and its componentspgoyette
2015-04-18Remove some debugging printf()s that were erroneously committed.pgoyette
2015-04-18use unsigned type for flag bits.mlelstv
2015-04-18Update attach/detach routines and provide MODULE interface.pgoyette
Confirmed that atf tests (which run via rump) still pass, and also confirmed that panic/reboot work in both monolithic kernel and loaded module.
2015-04-13Convert sys/dev to use <sys/rndsource.h>.riastradh
2015-04-04another missing free dict.christos
2015-04-04don't forget to free the dictionary.christos
2015-04-04Free ped if we can't hand it to the power daemon.riastradh
Found by Brainy, reported by maxv@.
2015-03-14Add a counter of busy events and stop enqueueing more work if a device is busy.hannken
Protect this counter with a new short time lock "sme_work_mtx" and keep "sme_mtx" as long time lock. Removes a deadlock where an active event holds "sme_mtx", the callout "sme_events_check" blocks on "sme_mtx" and callout processing stops.
2015-01-06As proposed on tech-net@, introduce a new switch type, PSWITCH_TYPE_RADIO,bouyer
to be used to report to userland hardware radio switch changes. powerd(8) will call a "radio_button" script to handle the event. This script can e.g. start or stop wpa_supplicant. Update wpi(4) to report PSWITCH_TYPE_RADIO events to sysmon.
2014-11-23Pull workqueue_destroy out of sme->sme_mtxozaki-r
workqueue_destroy may sleep so we shouldn't run it with holding a mutex. Requested by riastradh@.
2014-11-22Replace callout_stop with callout_haltozaki-r
In order to call callout_destroy for a callout safely, we have to ensure the function of the callout is not running and pending. To do so, we should use callout_halt, not callout_stop. In this case, we need to pass an interlock to callout_halt to wait for the callout complete. And also we make sure that SME_CALLOUT_INITIALIZED is unset before calling callout_halt to prevent the callout from calling callout_schedule. This is the same as what we did in sys/netinet6/mld6.c@1.61. Reviewed by riastradh@.
2014-11-22Kill sme_callout_mtx and use sme_mtx insteadozaki-r
We can use sme_mtx for the callout as well. Actually we should do so because sme_events_list and some other data that are touched in the callout should be protected by sme_mtx, not sme_callout_mtx. Discussed with riastradh@ in http://mail-index.netbsd.org/tech-kern/2014/11/11/msg017956.html
2014-11-21Explicitly compare to NULL to show clang that the bool conversion isjoerg
intentional, even if it is always true in case of the arrays.