thermal/core/power_allocator: Using round the division when re-divvying up power
authorjeson.gao <jeson.gao@unisoc.com>
Mon, 15 Mar 2021 08:25:37 +0000 (16:25 +0800)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Tue, 16 Mar 2021 11:44:20 +0000 (12:44 +0100)
commit6e3e14c9385c3cfb35f9da4f495acdd21f9bc25b
tree291b87fab347c91c8f526b46e2acdb7878557ca5
parent87602aeb8ad5bb1b2e23285a9d1322ac033f86c9
thermal/core/power_allocator: Using round the division when re-divvying up power

The division is used directly in re-divvying up power, the decimal part will
be discarded, devices will get less than the extra_actor_power - 1.
if using round the division to make the calculation more accurate.

For example:
actor0 received more than its max_power, it has the extra_power 759
actor1 received less than its max_power, it require extra_actor_power 395
actor2 received less than its max_power, it require extra_actor_power 365
actor1 and actor2 require the total capped_extra_power 760

using division in re-divvying up power
actor1 would actually get the extra_actor_power 394
actor2 would actually get the extra_actor_power 364

if using round the division in re-divvying up power
actor1 would actually get the extra_actor_power 394
actor2 would actually get the extra_actor_power 365

Signed-off-by: Jeson Gao <jeson.gao@unisoc.com>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/1615796737-4688-1-git-send-email-gao.yunxiao6@gmail.com
drivers/thermal/gov_power_allocator.c