Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 08 Jul 2012 13:39:19 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        "freebsd-acpi@freebsd.org" <freebsd-acpi@FreeBSD.org>
Subject:   safe acpi_cpu_idle disabling
Message-ID:  <4FF96357.1030601@FreeBSD.org>

next in thread | raw e-mail | index | archive | help

I would like to propose the following patch for your review:
http://people.freebsd.org/~avg/acpi_cpu_disable_idle.diff

The main purpose of this change is to provide safe interaction between
acpi_cpu_idle and dynamic C-state changes by disabling acpi_cpu_idle while
C-state data is updated.

If my understanding is correct, currently there is no mutual protection between
acpi_cpu_idle code and acpi_cpu_cx_cst.  The code more or less works by never
cleaning up old C-state data, so it is still accessible while the two functions
have incoherent views.  There still could be problems when acpi_cpu_idle expects
C-state data at certain index to belong to one type while acpi_cpu_cx_cst
changes it to a different type.

P.S. I think that cpu_disable_idle should be made per-CPU (go to acpi_cpu softc).

-- 
Andriy Gapon




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FF96357.1030601>