git: kernel - Change AcpiOs*Lock() operation to reduce freezes
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat Apr 7 18:10:16 PDT 2018
commit d5ae73e731c4ba72c78a11582918079fd3b18a30
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sat Apr 7 18:06:08 2018 -0700
kernel - Change AcpiOs*Lock() operation to reduce freezes
* Rework the AcpiOs*Lock() functions to use a lockmgr lock + critical
section instead of a spin lock. There are situations where the
ACPI contrib code is holding one of these locks and then issues
high level calls that might block.
* When called from the idle thread, AcpiOs*Lock() uses a separate
spin-lock as before. The idle thread of course is not allowed to
block (except for HLT related activities). This lock will be
independent of the lockmgr lock, so we are assuming that cpu->idle
operation is independent from ACPI execution on other cpu threads.
* Fixes at least one panic, and also possibly lockups here and
there.
Summary of changes:
sys/dev/acpica/Osd/OsdSynch.c | 38 +++++++++++++++++++++++++++++++++-----
1 file changed, 33 insertions(+), 5 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/d5ae73e731c4ba72c78a11582918079fd3b18a30
--
DragonFly BSD source repository
More information about the Commits
mailing list