Re: [PATCH 2/3] genirq/timings: Add array suffix computation code
From: Daniel Lezcano
Date: Tue Mar 26 2019 - 11:23:05 EST
Hi Thomas,
thanks for reviewing this patch.
[ ... ]
>> +
>> +/*
>> + * Exponential moving average computation
>> + */
>> +static int irq_timings_ema_new(s64 value, s64 ema_old)
>
> There is a mixed bag of s64/u64 all over this code. Please stay
> consistent. We had enough sign confusion bugs in the past.
Right.
I have a question, ema_old and value will be always u64 type and the
function irq_timings_ema_new() will return an u64 ...
> value = (value - ema_old) * EMA_ALPHA_VAL;
> return ema_old + value >> EMA_ALPHA_SHIFT;
... how can I deal with the operations above when value < ema_old ?
Shall I use an intermediate s64 ?
eg:
s64 aux = (value - ema_old) * EMA_ALPHA_VAL;
return ema_old + aux >> EMA_ALPHA_SHIFT;
?
[ ... ]
> Other than that this looks good to me. Nice work!
Thanks, I appreciate.
--
<http://www.linaro.org/> Linaro.org â Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog