Bill.Holler wrote: > 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? >> >> > Only the boot cpu executed mach_init() and sets its > CPU->cpu_m.mcpu_mwait_support. The other cpus do not > execute this code and have not set their mcpu_mwait_support > flag. The code added to mach_init() also needs to be added to > mp_startup_init(). :-)
Thanks to point it out. I missed that. I'll fix it soon. > > Is it possible to use a global variable instead of having > mcpu_mwait_support in each cpu_t? We do not plan to > support a mixed configuration where some cpus use MWAIT > and some do not. ;-) Is there any other reasons? ;-) Thanks, -Aubrey
