Re: [PATCH v3] sched: async unthrottling for cfs bandwidth

From: Josh Don
Date: Mon Nov 28 2022 - 20:32:34 EST


> @@ -1686,7 +1698,17 @@ static void __run_hrtimer(struct hrtimer_cpu_base *cpu_base,
>
> lockdep_hrtimer_exit(expires_in_hardirq);
> trace_hrtimer_expire_exit(timer);
> - raw_spin_lock_irq(&cpu_base->lock);
> +
> + local_irq_disable();
> +
> + if (restart >= HRTIMER_RESTART_MIGRATE) {
> + int cpu = restart - HRTIMER_RESTART_MIGRATE;

I know this is just a rough draft, but just noting that this wants a
check against MIGRATE_MAX :)

> + if (new_cpu_base != cpu_base) {
> + timer->base = new_base;
> + enqueue_hrtimer(timer, new_base, HRTIMER_MODE_ABS);
> + raw_spin_unlock(&new_cpu_base->lock);

unlock the old base->lock right?