[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] x86/xen: fix warning when running with nosmt mitigations



On Thu, Nov 05, 2020 at 07:35:29PM -0500, Brian Masney wrote:
> diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
> index 799f4eba0a62..4a052459a08e 100644
> --- a/arch/x86/xen/spinlock.c
> +++ b/arch/x86/xen/spinlock.c
> @@ -93,9 +93,24 @@ void xen_init_lock_cpu(int cpu)
>  
>  void xen_uninit_lock_cpu(int cpu)
>  {
> +     int irq;
> +
>       if (!xen_pvspin)
>               return;
>  
> +     /*
> +      * When booting the kernel with 'mitigations=auto,nosmt', the secondary
> +      * CPUs are not activated and only the primary thread on each CPU core
> +      * is used. In this situation, xen_hvm_smp_prepare_cpus(), and more
> +      * importantly xen_init_lock_cpu(), is not called, so the
> +      * lock_kicker_irq is not initialized for the secondary CPUs. Let's
> +      * exit early if the irq is not set to avoid a warning in the console
> +      * log.
> +      */
> +     irq = per_cpu(lock_kicker_irq, cpu);
> +     if (irq == -1)
> +             return;
> +
>       unbind_from_irqhandler(per_cpu(lock_kicker_irq, cpu), NULL);

As soon as I saw this on lore, I saw that I should have passed the irq
variable to unbind_from_irqhandler() rather than doing another per_cpu()
lookup. I'll wait for feedback about the general approach before posting
a v2.

Brian




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.