On Mon, Oct 05, 2020 at 04:57:32PM +0200, Peter Zijlstra wrote:
> +static inline struct task_struct *get_push_task(struct rq *rq)
> +{
> +     struct task_struct *p = rq->curr;
> +
> +     lockdep_assert_held(&rq->lock);
> +
> +     if (rq->push_busy)
> +             return NULL;
> +
> +     if (p->nr_cpus_allowed == 1)
> +             return NULL;

This; that means what when we're stuck below a per-cpu thread, we're
toast. There's just nothing much you can do... :/

> +
> +     rq->push_busy = true;
> +     return get_task_struct(p);
> +}

Reply via email to