Li, Aubrey wrote: > the function to place processor into deeper c-state is added. > > I discussed with Bill about how to enter deeper c-state. > The ACPI documentation uses reading ACPI register address to enter, > while Intel Processor programming guides indicate MWAIT is prefered. > > We know, to wake up an idle CPU, mwait just needs monitor memory write. > But "halt" and ACPI reading IO port need an IPI. Obviously, mwait has > the > better performance. > > So, here, I didn't see any advantage to follow ACPI on the > mwait-supported > processors. The logic breaking ACPI rule in the committed code is as > follows: > > if (mwait is supported) > use monitor/mwait to enter deep c-state > else > reading IO port from ACPI > > Of course this logic depends on the info reading from ACPI objects. > So disp_enq_thread doesn't need to be changed. > > Any objects/thoughts? > Do we have a mechanism to map ACPI c-states to/from MWAIT c-states? The Solaris idle threads will have to restore more state when returning from deeper ACPI c-states such as C3. The idle threads will need to be aware of the MWAIT<->ACPI c-state mapping.
Regards, Bill > Thanks, > -Aubrey > > tesla-dev-bounces wrote: > > >> Author: Aubrey Li <aubrey.li at intel.com> >> Repository: /hg/tesla/cpupm-gate >> Latest revision: fb46381c0d6aa02129ae68dcdf89bb19897aa671 Total >> changesets: 1 Log message: >> add funtion to place processor into deeper c-state >> >> Files: >> update: usr/src/uts/i86pc/io/cpu_idle.c >> update: usr/src/uts/i86pc/io/cpudrv_plat.c >> update: usr/src/uts/i86pc/os/mp_machdep.c >> update: usr/src/uts/i86pc/sys/cpu_idle.h >> update: usr/src/uts/i86pc/sys/machcpuvar.h >> > > _______________________________________________ > tesla-dev mailing list > tesla-dev at opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/tesla-dev >
