[dm-devel] [PATCH 3/4] libmultipath: path latency: simplify getprio()
Guan Junxiong
guanjunxiong at huawei.com
Sun Nov 19 02:52:13 UTC 2017
On 2017/11/18 8:11, Martin Wilck wrote:
> The log standard deviation can be calculated much more simply
> by realizing
>
> sum_n (x_i - avg(x))^2 == sum_n x_i^2 - n * avg(x)^2
>
I derive the equation:
sum_n {(x_i - avg(x))^2} = sum_n{x_i^2 -2*x_i*avg(x) + avg(x)^2}
= sum_n{x_i^2} - 2*avg(x)*sum_n{x_i} + sum_n{avg(x)^2}
= sum_n{x_i^2} - 2*avg(x)*avg(x) + n*avg(x)^2
= sum_n{x_i^2} + (n-2)*avg(x)^2
> Also, use timespecsub rather than the custom timeval_to_usec,
> and avoid taking log(0).
>
Great.
> + pp_pl_log(3, "%s: latency avg=%.2e uncertainty=%.1f prio=%d\n",
latency avg -> latency geometric avg ? Because in most cases,
avg means arithmetic avg , but in this case, it means geometric avg.
> + pp->dev, exp(lg_avglatency * lg_base),
> + exp(standard_deviation * lg_base), rc);
How can you get the uncertainty of Log-normal distribution
is the exp(standard_deviation * lg_base) ?
Thanks.
Regards
Guan
.
> +
> return rc;
> }
>
More information about the dm-devel
mailing list