On Fri, 11 Nov 2016, Michael van Elst wrote:
Since we don't have floating point the computation should be done in
fixed point arithmetic, e.g.
r_avgcount = (A * r_avgcount + B * INT2FIX(r_mcount)) / (A + B);
With the current A=B=1 you get alpha=0.5, but other values are thinkable
to make the balancer decide on the short term thread count or an even
longer term moving average.
Using one fractional bit for INT2FIX by multiplying by two might not
be enough.
I see a lot of ground for more research here, determining right amount of
bits and A and B. To sum up our options at this point:
a) leave the situation as-is and wait for research to get a perfect formula
b) commit the patch we have and wait for the research to be done
Given that the existing patch in PR kern/43561 and PR kern/51615 does
improve the current situation, I'd vote for option "b".
Any takers? Any objections?
- Hubert