Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1270656

Re: [PATCH 2/4] timer: relax tick stop in idle entry

From "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Newsgroups linux.kernel
Subject Re: [PATCH 2/4] timer: relax tick stop in idle entry
Date 2015-11-16 23:40 +0100
Message-ID <qvABj-4Q6-5@gated-at.bofh.it> (permalink)
References (1 earlier) <qusFP-2eI-1@gated-at.bofh.it> <qut8T-2FM-15@gated-at.bofh.it> <quv0Z-3RA-11@gated-at.bofh.it> <qvtzQ-sT-25@gated-at.bofh.it> <qvzYB-4nO-5@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Mon, Nov 16, 2015 at 01:51:26PM -0800, Jacob Pan wrote:
> On Mon, 16 Nov 2015 16:06:57 +0100 (CET)
> Thomas Gleixner <tglx@linutronix.de> wrote:
> 
> > >           <idle>-0     [000]    30.093474: bprint:
> > > __tick_nohz_idle_enter: JPAN: tick_nohz_stop_sched_tick 609 delta
> > > 1000000 [JP] but sees delta is exactly 1 tick away. didn't stop
> > > tick.  
> > 
> > If the delta is 1 tick then it is not supposed to stop it. Did you
> > ever try to figure out WHY it is 1 tick?
> > 
> > There are two code pathes which can set it to basemono + TICK_NSEC:
> > 
> >         if (rcu_needs_cpu(basemono, &next_rcu) ||
> >             arch_needs_cpu() || irq_work_needs_cpu()) {
> >                 next_tick = basemono + TICK_NSEC;
> >         } else {
> >                 next_tmr = get_next_timer_interrupt(basejiff,
> > basemono); ts->next_timer = next_tmr;
> >                 /* Take the next rcu event into account */
> >                 next_tick = next_rcu < next_tmr ? next_rcu : next_tmr;
> >         }
> > 
> > Can you please figure out WHY the tick is requested to continue
> > instead of blindly wreckaging the logic in that code?
> 
> Looks like the it hits in both cases during forced idle.
> + Josh
> + Paul
> 
> For the first case, it is always related to RCU. I found there are two
> CONFIG options to avoid this undesired tick in idle loop.
> 1. enable CONFIG_RCU_NOCB_CPU_ALL, offload to orcu kthreads
> 2. or enable CONFIG_RCU_FAST_NO_HZ (enter dytick idle w/ rcu callback)
> 
> Either one works but my concern is that users may not realize the
> intricate CONFIG_ options and how they translate into energy savings.
> Consulted with Josh, it seems we could add a check here to recognize
> the forced idle state and relax rcu_needs_cpu() to return false even it
> has callbacks. Since we are blocking everybody for a short time (5 ticks
> default). It should not impact synchronize and kfree rcu.

Or we could just set things up so that whatever Kconfig you are using
to enable this state causes CONFIG_RCU_NOCB_CPU_ALL to also be enabled.
Or that causes CONFIG_RCU_FAST_NO_HZ to also be enabled, if that works
better for you.

Just out of curiosity, what is the purpose of the forced idle state?
Thermal control or some such?

							Thanx, Paul

> For the second case, which is much more rare, I think we do have next
> timer exactly one tick away. Just don't know why tick will continue into
> idle loop.
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH 2/4] timer: relax tick stop in idle entry Thomas Gleixner <tglx@linutronix.de> - 2015-11-16 16:10 +0100
  Re: [PATCH 2/4] timer: relax tick stop in idle entry Jacob Pan <jacob.jun.pan@linux.intel.com> - 2015-11-16 23:00 +0100
    Re: [PATCH 2/4] timer: relax tick stop in idle entry Thomas Gleixner <tglx@linutronix.de> - 2015-11-16 23:10 +0100
      Re: [PATCH 2/4] timer: relax tick stop in idle entry Jacob Pan <jacob.jun.pan@linux.intel.com> - 2015-11-17 01:20 +0100
        Re: [PATCH 2/4] timer: relax tick stop in idle entry Jacob Pan <jacob.jun.pan@linux.intel.com> - 2015-11-19 18:50 +0100
        Re: [PATCH 2/4] timer: relax tick stop in idle entry Peter Zijlstra <peterz@infradead.org> - 2015-11-19 20:10 +0100
          Re: [PATCH 2/4] timer: relax tick stop in idle entry Jacob Pan <jacob.jun.pan@linux.intel.com> - 2015-11-19 20:30 +0100
            Re: [PATCH 2/4] timer: relax tick stop in idle entry Peter Zijlstra <peterz@infradead.org> - 2015-11-19 21:00 +0100
              Re: [PATCH 2/4] timer: relax tick stop in idle entry Jacob Pan <jacob.jun.pan@linux.intel.com> - 2015-11-20 00:50 +0100
    Re: [PATCH 2/4] timer: relax tick stop in idle entry "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-11-16 23:40 +0100
      Re: [PATCH 2/4] timer: relax tick stop in idle entry Jacob Pan <jacob.jun.pan@linux.intel.com> - 2015-11-17 00:10 +0100
      Re: [PATCH 2/4] timer: relax tick stop in idle entry Jacob Pan <jacob.jun.pan@linux.intel.com> - 2015-11-17 00:20 +0100
        Re: [PATCH 2/4] timer: relax tick stop in idle entry "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-11-17 00:30 +0100
          Re: [PATCH 2/4] timer: relax tick stop in idle entry Arjan van de Ven <arjan@linux.intel.com> - 2015-11-17 00:40 +0100
            Re: [PATCH 2/4] timer: relax tick stop in idle entry Jacob Pan <jacob.jun.pan@linux.intel.com> - 2015-11-17 00:50 +0100
              Re: [PATCH 2/4] timer: relax tick stop in idle entry "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-11-17 01:10 +0100
    Re: [PATCH 2/4] timer: relax tick stop in idle entry Josh Triplett <josh@joshtriplett.org> - 2015-11-16 23:40 +0100
      Re: [PATCH 2/4] timer: relax tick stop in idle entry "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-11-17 00:30 +0100
        Re: [PATCH 2/4] timer: relax tick stop in idle entry Josh Triplett <josh@joshtriplett.org> - 2015-11-17 02:50 +0100
          Re: [PATCH 2/4] timer: relax tick stop in idle entry Arjan van de Ven <arjan@linux.intel.com> - 2015-11-17 04:00 +0100
            Re: [PATCH 2/4] timer: relax tick stop in idle entry "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-11-17 06:10 +0100
              Re: [PATCH 2/4] timer: relax tick stop in idle entry Peter Zijlstra <peterz@infradead.org> - 2015-11-17 11:30 +0100
                Re: [PATCH 2/4] timer: relax tick stop in idle entry Jacob Pan <jacob.jun.pan@linux.intel.com> - 2015-11-17 14:00 +0100
                Re: [PATCH 2/4] timer: relax tick stop in idle entry "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-11-17 14:50 +0100
          Re: [PATCH 2/4] timer: relax tick stop in idle entry "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2015-11-17 04:00 +0100

csiph-web