jruoho
7ed7fa0c2a
Fix a typo in one DPRINTF (s/edata->des/edata->desc/).
2010-02-05 19:22:25 +00:00
pgoyette
1fe73d6688
One more callback of sme_refresh() routine needs to check first that
...
there is a routine to be called!
2010-02-05 17:44:27 +00:00
pgoyette
4c60416219
If the AC adapter is flagged with SME_DISABLE_REFRESH, don't try to call
...
its refresh() callback. Just assume that its value has been properly
updated by other means.
2010-02-04 18:06:53 +00:00
martin
2a2c96609a
Fix an outdated comment, noticed by Paul Goyette.
2010-01-31 22:53:56 +00:00
martin
889f82dd49
Add a convenience function to find the maximum value currently reported
...
by a set (selected via a passed callback predicate) of sensors.
This provides an easy way to query the current temperature of a thermal
zone, for example, from within the kernel - assuming the caller knows
the topology.
2010-01-31 21:36:38 +00:00
pooka
fdca8d1743
print newline after timer expiry message
2010-01-31 02:54:56 +00:00
pooka
f510198e1c
Make swwdog use no-needs-count. As the manpage says, there can be only one.
2010-01-30 21:55:28 +00:00
pgoyette
aaabf34dde
Validate limit-based monitoring in one place, so we can apply the
...
constraints to both driver-requested and user-requested monitoring.
While here, clean up some of the debugging DPRINTFs.
2010-01-30 02:46:52 +00:00
pgoyette
af4bab2a6f
Move the limits out of the event structure and into the main sensor.
...
Use the limits_flags only for calls to the {get,set}_limits() callbacks
and merge the results into upropset, rather than trying to maintain both
values (error prone).
2010-01-26 14:22:00 +00:00
pgoyette
299ee01345
If no limits are exceeded, make sure we set state to SVALID
2010-01-18 21:48:15 +00:00
pgoyette
4e1c0f753c
Flags for existence of limit values need to be propagated to the
...
event data. Otherwise, they're not processed.
XXX This needs to be rethought. While fixing it this way makes things
XXX "work", we really shouldn't need to replicate these flags. The
XXX limits and their flags should be kept as part of the sensor data,
XXX and not part of the event-monitor data. I'll work on this in the
XXX near future.
2010-01-02 19:02:39 +00:00
pgoyette
801c007d68
Don't infer a sensor driver's ability to handle limit checking itself.
2010-01-01 15:41:25 +00:00
pgoyette
160a805c1d
Check for value exceeding crit-max limit before checking against warn-max
...
limit. Otherwise we'll never notice if we exceed crit-max (assuming that
crit-max is at least as large as warn-max).
2009-12-23 18:31:00 +00:00
jakllsch
d50bb58a85
Fix POWER_IOC_GET_TYPE.
...
The longest string in use with this seems to have been "acpi",
so size_t covered that, but on 32-bit ports omited the NUL.
2009-11-06 18:28:10 +00:00
pgoyette
d36ea2afc5
Document usage of PROP_DRIVER_LIMITS flag and set it correctly.
...
Use flag bits to determine validity of limit values, rather than
assuming that invalid/not-present values are set to zero.
2009-07-10 15:27:33 +00:00
pgoyette
0fab9769e4
Remove some code (bracketed by #ifdef NOTYET / #endif) that should not
...
have been committed in the first place.
2009-07-10 13:09:09 +00:00
pgoyette
e17701cfef
Remove driver name from debug message. Not all drivers have set this
...
early enough, and we can easily figure out the driver name from some
subsequent debug messages.
2009-07-08 17:54:27 +00:00
pgoyette
c7ba8d5428
Initialize lims.sel_flags before using it. Prevents spurious limit
...
events being created for devices that don't provide internal limits.
Thanks to Mattias for finding this.
2009-07-08 17:28:53 +00:00
pgoyette
e65558aef1
Clean up a couple of debug statements that got missed previously.
2009-07-08 13:34:11 +00:00
pgoyette
45f4717820
Ooops - {get,set}_limits() need to be sensor-specific. Pass an extra
...
argument to them to identify the individual sensor being processed.
2009-06-14 19:43:12 +00:00
pgoyette
c235777756
Add capability to send sensor limit values to the driver so they can
...
be programmed into device registers. This way we can let the hardware
help us out instead of having to always compare the value against each
limit. (Driver updates for some sensors to take advantage of this
capability will be forthcoming.)
2009-06-13 16:08:25 +00:00
pgoyette
260b6fd907
Correct typo in last so we can #undef the correct macro.
2009-06-08 13:06:33 +00:00
pgoyette
f7ad703892
General clean-up and some restructuring of event handling. This is a
...
precursor to letting sensor drivers actually exchange limits/thresholds
with user-land.
2009-06-08 00:55:35 +00:00
pgoyette
677e91afbc
Don't allocate the private list-threading structure unless we're going
...
to use it. Otherwise we end up leaking little bits of memory for each
sensor that is not monitored at time of initial registration.
2009-06-03 11:43:15 +00:00
pgoyette
5a84f3060e
Since we no longer have individual events for each sensor value limit,
...
we don't need individual flag bits. Clean up extra bit definitions.
Bump kernel version - welcome to 5.99.13
2009-06-01 20:08:44 +00:00
dyoung
3afac3e189
Fix spelling: mak -> make.
2009-04-07 21:49:36 +00:00
pgoyette
438c6057be
Fix typo in previous, and wrap a panic with #ifdef DIAGNOSTIC
2008-11-11 19:03:06 +00:00
pgoyette
0ba7ea9569
Initialize event's "previous sent state" based on the event monitor type,
...
regardless of sensor type. Fixes spurious "device: normal state on
'sensor-name' messages (reported by ad@) which interfere with sysinst.
2008-11-11 16:55:01 +00:00
pgoyette
287fe7d56d
Fix cut&paste error in prev
2008-11-04 22:16:15 +00:00
pgoyette
3880525312
Restore previous behavior concerning CRITICAL events. Send an event
...
whenever state enters or exits CRITICAL, or whenever value of sensor
changes while the state is CRITICAL.
2008-11-04 22:06:10 +00:00
pgoyette
494623b269
Only report new sensor state values if the new value is valid for the
...
particular event being monitored. This avoids duplicate reporting for
sensors that monitor both a normal/critical state and value-within-limits
state as reported by Simon Burge on current-users.
While we're here, clean-up some stair-stepping if's.
OK garbled@
2008-09-07 12:13:00 +00:00
gmcgarry
c8ddbd2d15
Rearrange code in the sysmon queue execution thread to simplify locking logic.
...
Removes unreachable code warning.
2008-09-05 22:06:52 +00:00
gmcgarry
2b28c4e886
Rearrange sysmonread_power() to have a single exit point, which simplifies
...
the locking and fixes -Wunreachable-code warning.
2008-09-05 21:58:32 +00:00
pgoyette
0d1ae4cbb2
Initialize event's sent-state appropriately to avoid unnecessary start-up
...
time messages that report a "transition" to the Normal state.
2008-09-04 21:54:51 +00:00
pgoyette
6d65ba8398
1. provide for warning-min and warning-max alarm levels in addition to
...
critical-min and critical-max; also, a battery warning-capacity is
added in addition to a critical-capacity.
2. usr.sbin/envstat is modified to introduce a -W command line switch to
display the warning-* values instead of the critical-* values, and
envstat(8) and envsys.conf(5) man pages are updated appropriately.
3. Treat user-defined limits as a single continuum and generate a single
event regardless of how many boundaries a change in sensor value
crosses; ditto for driver-defined limits.
Fixes my PR/39021
Fixes my PR/39022
OK'd by christos@ bouyer@ cube@
2008-08-22 11:27:50 +00:00
drochner
96a9f67868
in sme_battery_check(), explicitely check whether the battery is
...
present before using the values read, and clean up the logics
a bit to make it more understandable
2008-06-11 17:40:06 +00:00
jmcneill
b9f9379e74
Add SME_POLL_ONLY flag, which informs sme to only refresh the sensor when
...
it is polled (and not from GTREDATA).
2008-06-03 15:00:57 +00:00
jmcneill
0b59054580
Use aprint when reporting AC adapter status.
2008-05-10 14:01:32 +00:00
xtraeme
c32766fd4f
Pass KTHREAD_MPSAFE to kthread_create(). I've been testing this for
...
some weeks in both UP and SMP without any issue so far.
2008-04-06 09:42:04 +00:00
hannken
ad882177bc
Update includes. Builds again on sparc64.
...
Ok: Juan Romero Pardines <xtraeme@netbsd.org>
2008-04-04 10:10:20 +00:00
xtraeme
6dcb9dd40c
Initialize and destroy the callout in sme_events_init() and
...
sme_events_destroy() respectively. And don't stop twice the callout
when calling sysmon_envsys_unregister().
2008-04-02 11:19:22 +00:00
xtraeme
18b1d12d0e
Also fix a memleak when the event is already in dictionary
...
and has been updated.
2008-04-01 17:01:34 +00:00
rmind
4b02b68c59
sme_event_register: fix a memory leaks in two error paths.
2008-04-01 16:48:18 +00:00
xtraeme
5ee4eba88d
Introduce per-device locking/synchronization and maintain only a
...
global mutex for the linked list of devices and the global proplib
dictionary.
This has improved locking contention a lot when multiple devices with
multiple monitoring events are running:
New:
0.30 35 0.33 sme_global_mtx sysmonioctl_envsys+28b
0.10 10 0.11 00000000cd97feac sysmon_envsys_acquire+4c
0.08 6 0.09 00000000cd97feac sme_update_dictionary+24f
0.01 4 0.01 00000000cd97feac sme_events_worker+2f
0.01 10 0.01 00000000cd97fe2c sysmon_envsys_acquire+4c
0.00 1 0.00 00000000cd97fe2c sysmon_envsys_release+3b
28.38 94 9.16 sme_global_mtx sysmonioctl_envsys+28b
4.54 74 1.47 00000000cd97fe2c sysmon_envsys_acquire+4c
0.06 3 0.02 00000000cd97fe2c sysmon_envsys_release+3b
0.03 1 0.01 00000000cd97fe2c sme_events_worker+2f
1.40 19 0.45 00000000cd97bee4 sysmon_envsys_acquire+4c
Old:
4.25 313 4.74 sme_mtx <all>
3.12 185 3.49 sme_mtx sme_events_worker+21
1.12 128 1.25 sme_mtx sysmonioctl_envsys+29b
34.75 1423 59.52 sme_mtx <all>
22.08 477 37.82 sme_mtx sysmonioctl_envsys+29b
12.67 946 21.70 sme_mtx sme_events_worker+21
2008-04-01 12:25:30 +00:00
xtraeme
a826e85aba
Fix some problems reported by <drochner> a while ago on tech-kern:
...
sme_events_worker: skip sensors with invalid state.
sme_acadapter_check:
* use a boolean to check if an SME_CLASS_ACADAPTER was found.
* Always refresh sensor data before checking value_cur.
Introduce the SME_INIT_REFRESH flag. If a device sets this it will mean
that after interrupts are enabled in the autoconf(9) process, sensor
data will be refreshed once.
2008-03-23 16:09:41 +00:00
xtraeme
b1700faaf8
Pass D_MPSAFE to d_flag in the cdevsw struct, so that the kernel_lock
...
is not taken in the driver methods.
I've been running with this for some days without any effect.
2008-03-03 09:38:49 +00:00
rmind
c6186face4
Welcome to 4.99.55:
...
- Add a lot of missing selinit() and seldestroy() calls.
- Merge selwakeup() and selnotify() calls into a single selnotify().
- Add an additional 'events' argument to selnotify() call. It will
indicate which event (POLL_IN, POLL_OUT, etc) happen. If unknown,
zero may be used.
Note: please pass appropriate value of 'events' where possible.
Proposed on: <tech-kern>
2008-03-01 14:16:49 +00:00
xtraeme
4089d9068a
Added a missing break that was bothering me.
2008-02-29 18:07:11 +00:00
xtraeme
9f5371f02a
Only check sysmon_low_power if the event comes from
...
ENVSYS_BATTERY_CAPACITY sensors.
2008-02-29 14:34:49 +00:00
xtraeme
51e43163c8
Add three new values for ENVSYS_DRIVE units:
...
* ENVSYS_DRIVE_OFFLINE, ENVSYS_DRIVE_CHECK and ENVSYS_DRIVE_BUILD
2008-02-28 16:21:34 +00:00