lkml.org 
[lkml]   [2017]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 154/164] powerpc/powernv/idle: Round up latency and residency values
    Date
    4.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>


    [ Upstream commit 8d4e10e9ed9450e18fbbf6a8872be0eac9fd4999 ]

    On PowerNV platforms, firmware provides exit latency and
    target residency for each of the idle states in nano
    seconds. Cpuidle framework expects the values in micro
    seconds. Round up to nearest micro seconds to avoid errors
    in cases where the values are defined as fractional micro
    seconds.

    Default idle state of 'snooze' has exit latency of zero. If
    other states have fractional micro second exit latency, they
    would get rounded down to zero micro second and make cpuidle
    framework choose deeper idle state when snooze loop is the
    right choice.

    Reported-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
    Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/cpuidle/cpuidle-powernv.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/drivers/cpuidle/cpuidle-powernv.c
    +++ b/drivers/cpuidle/cpuidle-powernv.c
    @@ -384,9 +384,9 @@ static int powernv_add_idle_states(void)
    * Firmware passes residency and latency values in ns.
    * cpuidle expects it in us.
    */
    - exit_latency = latency_ns[i] / 1000;
    + exit_latency = DIV_ROUND_UP(latency_ns[i], 1000);
    if (!rc)
    - target_residency = residency_ns[i] / 1000;
    + target_residency = DIV_ROUND_UP(residency_ns[i], 1000);
    else
    target_residency = 0;


    \
     
     \ /
      Last update: 2017-12-12 14:39    [W:4.047 / U:0.340 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site