[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <a541a64b-aabc-bb62-4cf7-da5004a756d7@oracle.com>
Date: Fri, 6 Nov 2020 19:44:16 -0500
From: boris.ostrovsky@...cle.com
To: Brian Masney <bmasney@...hat.com>, jgross@...e.com,
sstabellini@...nel.org
Cc: tglx@...utronix.de, mingo@...hat.com, bp@...en8.de, x86@...nel.org,
hpa@...or.com, xen-devel@...ts.xenproject.org,
linux-kernel@...r.kernel.org, dustymabe@...hat.com
Subject: Re: [PATCH] x86/xen: fix warning when running with nosmt mitigations
On 11/5/20 7:47 PM, Brian Masney wrote:
> 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.
This looks good. I'd shorten the comment though: your commit message already describes the scenario. And change the subject to something like "Don't unbind uninitialized lock_kicker_irq".
-boris
Powered by blists - more mailing lists