• Arjan van de Ven's avatar
    cpuidle: add a repeating pattern detector to the menu governor · 1f85f87d
    Arjan van de Ven authored
    Currently, the menu governor uses the (corrected) next timer as key item
    for predicting the idle duration.
    
    It turns out that there are specific cases where this breaks down: There
    are cases where we have a very repetitive pattern of idle durations, where
    the idle period is pretty much the same, for reasons completely unrelated
    to the next timer event.  Examples of such repeating patterns are network
    loads with irq mitigation, the mouse moving but in theory also the wifi
    beacons.
    
    This patch adds a relatively simple detector for such repeating patterns,
    where the standard deviation of the last 8 idle periods is compared to a
    threshold.
    
    With this extra predictor in place, measurements show that the DECAY
    factor can now be increased (the decaying average will now decay slower)
    to get an even more stable result.
    
    [arjan@infradead.org: fix bug identified by Frank]
    Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
    Cc: Corrado Zoccolo <czoccolo@gmail.com>
    Cc: Frank Rowand <frank.rowand@am.sony.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    1f85f87d
menu.c 11.8 KB