> -----Original Message----- > From: Daniel Lezcano [mailto:daniel.lezc...@linaro.org] > Sent: Thursday, September 04, 2014 9:02 PM > To: Liu, Chuansheng; pet...@infradead.org; l...@amacapital.net; > r...@rjwysocki.net; mi...@redhat.com > Cc: linux...@vger.kernel.org; linux-kernel@vger.kernel.org; Liu, Changcheng; > Wang, Xiaoming; Chakravarty, Souvik K > Subject: Re: [PATCH 3/3] cpuidle: Using the wake_up_all_idle_cpus() to wake up > all idle cpus > > On 09/04/2014 09:17 AM, Chuansheng Liu wrote: > > Currently kick_all_cpus_sync() or smp_call_function() can not > > break the polling idle cpu immediately. > > > > Here using wake_up_all_idle_cpus() which can wake up the polling idle > > cpu quickly is much helpful for power. > > Acked-by: Daniel Lezcano <daniel.lezc...@linaro.org> > > So IIUC, kick_all_cpus_sync is a broken function, right ? > > Wouldn't make sense to replace all calls to kick_all_cpus by > wake_up_all_idle_cpus ? and remove this broken function ? My initial patch(V1) indeed do it, but Andy pointed out some callers of kick_all_cpus_sync() really want the old behavior.
My fault again that do not have the detailed changelog for the patches. Pasted the comments from Andy: == > Currently using smp_call_function() just woke up the corresponding > cpu, but can not break the polling idle loop. > > Here using the new sched API wake_up_if_idle() to implement it. kick_all_cpus_sync has other callers, and those other callers want the old behavior. I think this should be a new function. --Andy ==