Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1725013
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 2/2] sched/idle: Use spin loop primitives for polling idle |
| Date | 2017-09-01 14:30 +0200 |
| Message-ID | <ukTfc-4tl-7@gated-at.bofh.it> (permalink) |
| References | <uguIp-55W-3@gated-at.bofh.it> <uguIp-55W-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Sun, Aug 20, 2017 at 07:25:02PM +1000, Nicholas Piggin wrote: > Signed-off-by: Nicholas Piggin <npiggin@gmail.com> > --- > kernel/sched/idle.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c > index 6c23e30c0e5c..b884980da8ef 100644 > --- a/kernel/sched/idle.c > +++ b/kernel/sched/idle.c > @@ -11,6 +11,7 @@ > #include <linux/stackprotector.h> > #include <linux/suspend.h> > #include <linux/livepatch.h> > +#include <linux/processor.h> > > #include <asm/tlb.h> > > @@ -64,9 +65,13 @@ static noinline int __cpuidle cpu_idle_poll(void) > trace_cpu_idle_rcuidle(0, smp_processor_id()); > local_irq_enable(); > stop_critical_timings(); > + > + spin_begin(); > while (!tif_need_resched() && > (cpu_idle_force_poll || tick_check_broadcast_expired())) > - cpu_relax(); > + spin_cpu_relax(); > + spin_end(); Do we want at least one tif_need_resched() check before we drop into low prio mode? > + > start_critical_timings(); > trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id()); > rcu_idle_exit(); > -- > 2.13.3 >
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
Re: [PATCH 2/2] sched/idle: Use spin loop primitives for polling idle Peter Zijlstra <peterz@infradead.org> - 2017-09-01 14:30 +0200 Re: [PATCH 2/2] sched/idle: Use spin loop primitives for polling idle Nicholas Piggin <npiggin@gmail.com> - 2017-09-06 02:20 +0200
csiph-web