NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/56592 CVS commit: src/sys/dev/sysmon

The following reply was made to PR kern/56592; it has been noted by GNATS.

From: "Taylor R Campbell" <>
Subject: PR/56592 CVS commit: src/sys/dev/sysmon
Date: Fri, 31 Dec 2021 14:30:05 +0000

 Module Name:	src
 Committed By:	riastradh
 Date:		Fri Dec 31 14:30:04 UTC 2021
 Modified Files:
 	src/sys/dev/sysmon: sysmon_envsys.c sysmon_envsys_events.c sysmonvar.h
 Log Message:
 sysmon(9): Fix callout/thread synchronization.
 Callout may ONLY take sme_work_mtx, at IPL_SOFTCLOCK; MUST NOT touch
 sme_mtx at IPL_NONE.  All state the callout needs is serialized by
 sme_work_mtx now:
 - calls to sme_schedule_callout
 - calls to sme_schedule_halt
 - struct sysmon_envsys::sme_events_timeout
 - struct sysmon_envsys::sme_events_list
 - struct sysmon_envsys::sme_callout_state
 - struct envsys_data::flags
   => yes, this is a little silly -- used for ENVSYS_FNEED_REFRESH
   => should maybe separate the static driver-defined features from
      the state flags needed by sysmon_envsys but not important now
 Sleeping under sme_work_mtx (except on other adaptive locks at
 IPL_SOFTCLOCK) is forbidden.  Calling out to the driver under
 sme_work_mtx is forbidden.
 This should properly fix:
 PR kern/56592
 To generate a diff of this commit:
 cvs rdiff -u -r1.149 -r1.150 src/sys/dev/sysmon/sysmon_envsys.c
 cvs rdiff -u -r1.122 -r1.123 src/sys/dev/sysmon/sysmon_envsys_events.c
 cvs rdiff -u -r1.51 -r1.52 src/sys/dev/sysmon/sysmonvar.h
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

Home | Main Index | Thread Index | Old Index