Re: [PATCH v5 7/7][Update] cpufreq: schedutil: New governor based on scheduler utilization data

From: Peter Zijlstra
Date: Thu Mar 17 2016 - 07:36:31 EST


On Thu, Mar 17, 2016 at 01:01:45AM +0100, Rafael J. Wysocki wrote:
> + } else if (sg_policy->next_freq != next_freq) {
> + sg_policy->work_cpu = smp_processor_id();
> + irq_work_queue(&sg_policy->irq_work);
> + }
> +}

> +static void sugov_irq_work(struct irq_work *irq_work)
> +{
> + struct sugov_policy *sg_policy;
> +
> + sg_policy = container_of(irq_work, struct sugov_policy, irq_work);
> + schedule_work_on(sg_policy->work_cpu, &sg_policy->work);
> +}

Not sure I see the point of ->work_cpu, irq_work_queue() does guarantee
the same CPU, so the above is identical to:

schedule_work_on(smp_processor_id(), &sq_policy->work);