linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
  • [parent not found: <1506756034-6340-3-git-send-email-aubrey.li@intel.com>]
  • [parent not found: <1506756034-6340-5-git-send-email-aubrey.li@intel.com>]
  • [parent not found: <1506756034-6340-7-git-send-email-aubrey.li@intel.com>]
  • [parent not found: <1506756034-6340-6-git-send-email-aubrey.li@intel.com>]
  • [parent not found: <3026355.QRuoy6eIZM@aspire.rjw.lan>]
  • [parent not found: <1506756034-6340-4-git-send-email-aubrey.li@intel.com>]
  • * Re: [RFC PATCH v2 0/8] Introduct cpu idle prediction functionality
           [not found] <1506756034-6340-1-git-send-email-aubrey.li@intel.com>
                       ` (6 preceding siblings ...)
           [not found] ` <1506756034-6340-4-git-send-email-aubrey.li@intel.com>
    @ 2017-11-30  1:00 ` Li, Aubrey
      2017-11-30  1:37   ` Rafael J. Wysocki
      7 siblings, 1 reply; 22+ messages in thread
    From: Li, Aubrey @ 2017-11-30  1:00 UTC (permalink / raw)
      To: Aubrey Li, tglx, peterz, rjw, len.brown, ak, tim.c.chen
      Cc: linux-pm, linux-kernel
    
    Hi,
    
    Thanks Rafael's comments against V2. I'd like to ping here to see which
    direction this proposal should go and what fundamental change this proposal
    should make.
    
    I'm also open to any suggestions if my proposal is not on the right way.
    
    Thanks,
    -Aubrey
    
    On 2017/9/30 15:20, Aubrey Li wrote:
    > We found under some latency intensive workloads, short idle periods occurs
    > very common, then idle entry and exit path starts to dominate, so it's
    > important to optimize them. To determine the short idle pattern, we need
    > to figure out how long of the coming idle and the threshold of the short
    > idle interval.
    > 
    > A cpu idle prediction functionality is introduced in this proposal to catch
    > the short idle pattern.
    > 
    > Firstly, we check the IRQ timings subsystem, if there is an event
    > coming soon.
    > -- https://lwn.net/Articles/691297/
    > 
    > Secondly, we check the idle statistics of scheduler, if it's likely we'll
    > go into a short idle.
    > -- https://patchwork.kernel.org/patch/2839221/
    > 
    > Thirdly, we predict the next idle interval by using the prediction
    > fucntionality in the idle governor if it has.
    > 
    > For the threshold of the short idle interval, we record the timestamps of
    > the idle entry, and multiply by a tunable parameter at here:
    > -- /proc/sys/kernel/fast_idle_ratio
    > 
    > We use the output of the idle prediction to skip turning tick off if a
    > short idle is determined in this proposal. Reprogramming hardware timer
    > twice(off and on) is expensive for a very short idle. There are some
    > potential optimizations can be done according to the same indicator.
    > 
    > I observed when system is idle, the idle predictor reports 20/s long idle
    > and ZERO fast idle on one CPU. And when the workload is running, the idle
    > predictor reports 72899/s fast idle and ZERO long idle on the same CPU.
    > 
    > Aubrey Li (8):
    >   cpuidle: menu: extract prediction functionality
    >   cpuidle: record the overhead of idle entry
    >   cpuidle: add a new predict interface
    >   tick/nohz: keep tick on for a fast idle
    >   timers: keep sleep length updated as needed
    >   cpuidle: make fast idle threshold tunable
    >   cpuidle: introduce irq timing to make idle prediction
    >   cpuidle: introduce run queue average idle to make idle prediction
    > 
    >  drivers/cpuidle/Kconfig          |   1 +
    >  drivers/cpuidle/cpuidle.c        | 109 +++++++++++++++++++++++++++++++++++++++
    >  drivers/cpuidle/governors/menu.c |  69 ++++++++++++++++---------
    >  include/linux/cpuidle.h          |  21 ++++++++
    >  kernel/sched/idle.c              |  14 ++++-
    >  kernel/sysctl.c                  |  12 +++++
    >  kernel/time/tick-sched.c         |   7 +++
    >  7 files changed, 209 insertions(+), 24 deletions(-)
    > 
    
    ^ permalink raw reply	[flat|nested] 22+ messages in thread

  • end of thread, other threads:[~2017-11-30  1:37 UTC | newest]
    
    Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <1506756034-6340-1-git-send-email-aubrey.li@intel.com>
         [not found] ` <1506756034-6340-2-git-send-email-aubrey.li@intel.com>
         [not found]   ` <1629755.KbDSmDPDTX@aspire.rjw.lan>
    2017-10-16  2:46     ` [RFC PATCH v2 1/8] cpuidle: menu: extract prediction functionality Li, Aubrey
         [not found] ` <1506756034-6340-3-git-send-email-aubrey.li@intel.com>
         [not found]   ` <2672521.fEEa1b19Vu@aspire.rjw.lan>
    2017-10-16  3:11     ` [RFC PATCH v2 2/8] cpuidle: record the overhead of idle entry Li, Aubrey
    2017-10-17  0:05       ` Rafael J. Wysocki
    2017-10-17  7:04         ` Li, Aubrey
         [not found] ` <1506756034-6340-5-git-send-email-aubrey.li@intel.com>
         [not found]   ` <4523111.uMcC96MW3N@aspire.rjw.lan>
    2017-10-16  3:26     ` [RFC PATCH v2 4/8] tick/nohz: keep tick on for a fast idle Li, Aubrey
    2017-10-16  4:45       ` Mike Galbraith
    2017-10-16  5:34         ` Li, Aubrey
    2017-10-16  6:25           ` Mike Galbraith
    2017-10-16  6:31             ` Li, Aubrey
         [not found] ` <1506756034-6340-7-git-send-email-aubrey.li@intel.com>
         [not found]   ` <2242303.t20yq9Lc6j@aspire.rjw.lan>
    2017-10-16  6:00     ` [RFC PATCH v2 6/8] cpuidle: make fast idle threshold tunable Li, Aubrey
    2017-10-17  0:01       ` Rafael J. Wysocki
    2017-10-17  6:12         ` Li, Aubrey
         [not found] ` <1506756034-6340-6-git-send-email-aubrey.li@intel.com>
         [not found]   ` <1554921.dz8jk4n8cL@aspire.rjw.lan>
    2017-10-16  6:46     ` [RFC PATCH v2 5/8] timers: keep sleep length updated as needed Li, Aubrey
    2017-10-16 23:58       ` Rafael J. Wysocki
    2017-10-17  6:10         ` Li, Aubrey
         [not found] ` <3026355.QRuoy6eIZM@aspire.rjw.lan>
    2017-10-16  7:44   ` [RFC PATCH v2 0/8] Introduct cpu idle prediction functionality Li, Aubrey
    2017-10-17  0:07     ` Rafael J. Wysocki
    2017-10-17  7:32       ` Li, Aubrey
         [not found] ` <1506756034-6340-4-git-send-email-aubrey.li@intel.com>
         [not found]   ` <2353480.vFnqZDvmsB@aspire.rjw.lan>
    2017-10-16  8:04     ` [RFC PATCH v2 3/8] cpuidle: add a new predict interface Li, Aubrey
         [not found]   ` <3044561.Ej2KzLJlAU@aspire.rjw.lan>
    2017-10-16  9:52     ` Li, Aubrey
    2017-11-30  1:00 ` [RFC PATCH v2 0/8] Introduct cpu idle prediction functionality Li, Aubrey
    2017-11-30  1:37   ` Rafael J. Wysocki
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox;
    as well as URLs for NNTP newsgroup(s).