lkml.org 
[lkml]   [2016]   [Mar]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v4 7/7] cpufreq: schedutil: New governor based on scheduler utilization data
    On Wed, Mar 16, 2016 at 03:59:18PM +0100, Rafael J. Wysocki wrote:
    > +static void sugov_update_commit(struct sugov_policy *sg_policy, u64 time,
    > + unsigned int next_freq)
    > +{
    > + struct cpufreq_policy *policy = sg_policy->policy;
    > +
    > + if (next_freq > policy->max)
    > + next_freq = policy->max;
    > + else if (next_freq < policy->min)
    > + next_freq = policy->min;
    > +
    > + sg_policy->last_freq_update_time = time;
    > + if (sg_policy->next_freq == next_freq) {
    > + if (policy->fast_switch_enabled)
    > + trace_cpu_frequency(policy->cur, smp_processor_id());
    > +
    > + return;
    > + }
    > +
    > + sg_policy->next_freq = next_freq;
    > + if (policy->fast_switch_enabled) {
    > + unsigned int freq;
    > +
    > + freq = cpufreq_driver_fast_switch(policy, next_freq);

    So you're assuming a RELATION_L for ->fast_switch() ?

    > + if (freq == CPUFREQ_ENTRY_INVALID)
    > + return;
    > +
    > + policy->cur = freq;
    > + trace_cpu_frequency(freq, smp_processor_id());
    > + } else {
    > + sg_policy->work_in_progress = true;
    > + irq_work_queue(&sg_policy->irq_work);
    > + }
    > +}


    > +static void sugov_work(struct work_struct *work)
    > +{
    > + struct sugov_policy *sg_policy = container_of(work, struct sugov_policy, work);
    > +
    > + mutex_lock(&sg_policy->work_lock);
    > + __cpufreq_driver_target(sg_policy->policy, sg_policy->next_freq,
    > + CPUFREQ_RELATION_L);

    As per here, which I assume matches semantics on that point.

    > + mutex_unlock(&sg_policy->work_lock);
    > +
    > + sg_policy->work_in_progress = false;
    > +}

    \
     
     \ /
      Last update: 2016-03-16 20:01    [W:4.106 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site