On Fri, May 28, 2010 at 10:59 AM, Len Brown <lenb@xxxxxxxxxx> wrote: > On Fri, 28 May 2010, Venkatesh Pallipadi wrote: > >> On Thu, May 27, 2010 at 11:02 PM, Len Brown <lenb@xxxxxxxxxx> wrote: >> > From: Len Brown <len.brown@xxxxxxxxx> >> > >> > commit d306ebc28649b89877a22158fe0076f06cc46f60 >> > (ACPI: Be in TS_POLLING state during mwait based C-state entry) >> > fixed an important power & performance issue where ACPI c2 and c3 C-states >> > were clearing TS_POLLING even when using MWAIT (ACPI_STATE_FFH). >> > That bug had been causing us to receive redundant scheduling interrups >> > when we had already been woken up by MONITOR/MWAIT. >> > >> > Following up on that... >> > >> > In the MWAIT case, we don't have to subsequently >> > check need_resched(), as that c heck was there >> > for the TS_POLLING-clearing case. >> > >> > Note that not only does the cpuidle calling function >> > already check need_resched() before calling us, the >> > low-level entry into monitor/mwait calls it twice -- >> > guaranteeing that a write to the trigger address >> > can not go un-noticed. >> >> Ack this part of the change. >> >> > Also, in this case, we don't have to set TS_POLLING >> > when we wake, because we never cleared it. >> >> I thought about this part of the change while working on the original >> patch. But decided to leave the set to be done unconditionally as in >> this case we are replacing "one write" by either "one read and one >> jump" or "one read and one write" and I am not sure we gain much by >> that. > > I don't know if the write is more expensive than the read and branch. > In the scheme of things, these things are free and it is the IO > accesses and locks in the idle path that take time. > Acked-by: Venkatesh Pallipadi <venki@xxxxxxxxxx> _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm