Hi Aubrey,
How will idle cpu wakeup be done? cpu_acpi_idle() introduces three
potential cpu idles states. A cpu currently calls disp_enq_thread() when
it wants to wakeup an idle cpu when it enqueued a thread on the
idle cpu's dispatcher queue. Solaris's disp_enq_thread() function
currently uses just one wakeup method because there was only one
possible idle state. I believe a cpu will have to send an inter processor
interrupt to wakeup a cpu in the C2 or C3 idle states? An IPI is used
to wakeup an idle cpu when the "halt" idle loop is used, but a low
overhead memory write is used to wakeup an idle cpu from the
MWAIT idle loop. Do we want to go back to using the HLT instruction
in the C1 idle loop to allow the wakeup mechanism to be the same for all
idle states? We found an MWAIT idle loop to have the same power
savings and better performance on Intel processors.
cpudrv_pm_init_module() does not change the cpu wakeup mechanism
when it sets idle_cpu to cpu_acpi_idle.
Eric and I have been talking about a policy to determine which idle
state to use. We know decision input will include:
1. time until next cyclic fires on this cpu.
2. dispatcher hint. The power-aware dispatcher will try to move threads
off whole cpu chips based on system idleness.
3. User specified policy.
4. C-state round trip latency.
cpu_acpi_idle() could call an idle policy function to determine with
C state to attempt.
This is starting to look great!
Regards,
Bill
Li, Aubrey wrote:
> C-state driver draft update is requesting for comments.
> Any suggestions, comments, criticism are appreciated!
>
> Thanks,
> -Aubrey
>
> tesla-dev-bounces wrote:
>
>
>> Author: Aubrey Li <aubrey.li at intel.com>
>> Repository: /hg/tesla/cpupm-gate
>> Latest revision: 5544357c58c7d5b4c37d6af1bd1c951b7929e812 Total
>> changesets: 1 Log message:
>> C-state driver draft update
>>
>> Files:
>> update: usr/src/uts/i86pc/io/cpu_idle.c
>> update: usr/src/uts/i86pc/io/cpudrv_plat.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
>>
> _______________________________________________
> tesla-dev mailing list
> tesla-dev at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/tesla-dev
>