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 _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-acpi To unsubscribe, send any mail to "[email protected]"
