RE: [PATCH v4] scsi: ufs: Fix imprecise load calculation in devfreq window

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 
> The UFS load calculation is based on "total_time" and "busy_time" in a
> devfreq window. However, the source of time is different for both
> parameters: "busy_time" is assigned from "jiffies" thus has different
> accuracy from "total_time" which is assigned from ktime_get().
> 
> Besides, the time of window boundary is not exactly the same as
> the starting busy time in this window if UFS is actually busy
> in the beginning of the window. A similar accuracy error may also
> happen for the end of busy time in current window.
> 
> To guarantee the precision of load calculation, we need to
> 
> 1. Align time accuracy of both devfreq_dev_status.total_time and
>    devfreq_dev_status.busy_time. For example, use "ktime_get()"
>    directly.
> 
> 2. Align below timelines,
>    - The beginning time of devfreq windows
>    - The beginning of busy time in a new window
>    - The end of busy time in the current window
> 
> Fixes: a3cd5ec55f6c ("scsi: ufs: add load based scaling of UFS gear")
> Signed-off-by: Stanley Chu <stanley.chu@xxxxxxxxxxxx>
Reviewed-by: Avri Altman <avri.altman@xxxxxxx>

Just a small nit.

> -       stat->total_time = jiffies_to_usecs((long)jiffies -
> -                               (long)scaling->window_start_t);
> +       stat->total_time = ktime_to_us(curr_t) - scaling->window_start_t;
ktime_sub ?

Thanks,
Avri




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux