On Thu, Nov 24, 2016 at 12:04 PM, Ingo Molnar wrote:
>
> * Peter Zijlstra wrote:
>
>> On Wed, Nov 23, 2016 at 12:13:08PM -0800, Jacob Pan wrote:
>> > @@ -280,6 +272,58 @@ bool cpu_in_idle(unsigned long pc)
>> > pc < (unsigned long)__cpuidle_text_end;
>> > }
>> >
>> > +static enum hrt
* Peter Zijlstra wrote:
> On Wed, Nov 23, 2016 at 12:13:08PM -0800, Jacob Pan wrote:
> > @@ -280,6 +272,58 @@ bool cpu_in_idle(unsigned long pc)
> > pc < (unsigned long)__cpuidle_text_end;
> > }
> >
> > +static enum hrtimer_restart idle_inject_timer_fn(struct hrtimer *hrtimer)
> >
On Wed, Nov 23, 2016 at 12:13:08PM -0800, Jacob Pan wrote:
> @@ -280,6 +272,58 @@ bool cpu_in_idle(unsigned long pc)
> pc < (unsigned long)__cpuidle_text_end;
> }
>
> +static enum hrtimer_restart idle_inject_timer_fn(struct hrtimer *hrtimer)
> +{
> + set_tsk_need_resched(curren
* Jacob Pan wrote:
> From: Peter Zijlstra
>
> Idle injection drivers such as Intel powerclamp and ACPI PAD drivers use
> realtime tasks to take control of CPU then inject idle. There are two issues
> with this approach:
'CPU' is capitalized properly here.
And here:
> #define PF_VCPU
From: Peter Zijlstra
Idle injection drivers such as Intel powerclamp and ACPI PAD drivers use
realtime tasks to take control of CPU then inject idle. There are two issues
with this approach:
1. Low efficiency: injected idle task is treated as busy so sched ticks do
not stop during injected i
5 matches
Mail list logo