lkml.org 
[lkml]   [2019]   [Nov]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v7 17/19] PM / devfreq: tegra30: Support variable polling interval
From
Date
02.11.2019 00:58, Michał Mirosław пишет:
> On Wed, Oct 30, 2019 at 01:00:17AM +0300, Dmitry Osipenko wrote:
>> The ACTMON governor is interrupt-driven and currently hardware's polling
>> interval is fixed to 16ms in the driver. Devfreq supports variable polling
>> interval by the generic governors, let's re-use the generic interface for
>> changing of the polling interval. Now the polling interval can be changed
>> dynamically via /sys/class/devfreq/devfreq0/polling_interval.
> [...]
>> @@ -308,7 +308,7 @@ static unsigned long actmon_device_target_freq(struct tegra_devfreq *tegra,
>> unsigned int avg_sustain_coef;
>> unsigned long target_freq;
>>
>> - target_freq = dev->avg_count / ACTMON_SAMPLING_PERIOD;
>> + target_freq = dev->avg_count / tegra->devfreq->profile->polling_ms;
>> avg_sustain_coef = 100 * 100 / dev->config->boost_up_threshold;
>> target_freq = do_percent(target_freq, avg_sustain_coef);
>> target_freq += dev->boost_freq;
>
> Noting a comment in patch 13, if this is hot path you could try reciprocal_divide().

Hello Michał,

This not really a hot path, I just wanted to optimize that case to keep
things a bit nicer.

Please take a look at the arch/arm/boot/compressed/lib1funcs.S, firstly
it checks whether divisor is a power of 2 value and then takes optimized
code path that uses a single shift. Hence the patch 13 still applies here.

\
 
 \ /
  Last update: 2019-11-01 23:24    [W:0.088 / U:1.540 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site