Re: [PATCHv2] efi/unaccepted: Fix soft lockups caused by parallel memory acceptance

From: Matthew Wilcox
Date: Mon Oct 16 2023 - 13:56:28 EST


On Mon, Oct 16, 2023 at 07:31:22PM +0300, Kirill A. Shutemov wrote:
> v2:
> - Fix deadlock (Vlastimil);
> - Fix comments (Vlastimil);
> - s/cond_resched()/cpu_relax()/ -- cond_resched() cannot be called
> from atomic context;

Isn't there an implicit cpu_relax() while we're spinning? Does this
really accomplish anything?

> +retry:
> spin_lock_irqsave(&unaccepted_memory_lock, flags);
[...]
> + spin_unlock_irqrestore(&unaccepted_memory_lock, flags);
> +
> + /*
> + * The code is reachable from atomic context.
> + * cond_resched() cannot be used.
> + */
> + cpu_relax();
> +
> + goto retry;