From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932352AbdJ0R1g (ORCPT ); Fri, 27 Oct 2017 13:27:36 -0400 Received: from mx2.suse.de ([195.135.220.15]:47905 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932190AbdJ0R1f (ORCPT ); Fri, 27 Oct 2017 13:27:35 -0400 Subject: Re: [PATCH][tip] x86/paravirt: Make the virt_spin_lock_key setup after jump_label_init() To: Dou Liyang , linux-kernel@vger.kernel.org, x86@kernel.org, xen-devel@lists.xenproject.org Cc: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, boris.ostrovsky@oracle.com, bp@suse.de, luto@kernel.org, vkuznets@redhat.com References: <1509120120-5386-1-git-send-email-douly.fnst@cn.fujitsu.com> From: Juergen Gross Message-ID: <0ce4ecd1-9826-dcca-d1c7-5c5bb744d0f7@suse.com> Date: Fri, 27 Oct 2017 19:27:33 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <1509120120-5386-1-git-send-email-douly.fnst@cn.fujitsu.com> Content-Type: text/plain; charset=utf-8 Content-Language: de-DE Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 27/10/17 18:02, Dou Liyang wrote: > Commit: > > 9043442b43b1 ("locking/paravirt: Use new static key for controlling > call of virt_spin_lock()") > > set the static virt_spin_lock_key to a value before jump_label_init() > has been called, which will result in a WARN(). > > Move the native_pv_lock_init() into xx_smp_prepare_cpus(). Make the > setup later to avoid the WARN(). > > Reported-by: Juergen Gross > Suggested-by: Juergen Gross > Signed-off-by: Dou Liyang > --- > arch/x86/kernel/smpboot.c | 3 ++- > arch/x86/xen/smp_pv.c | 2 ++ > arch/x86/xen/spinlock.c | 6 ++++-- > 3 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c > index aed1460..6b1335a 100644 > --- a/arch/x86/kernel/smpboot.c > +++ b/arch/x86/kernel/smpboot.c > @@ -1323,6 +1323,8 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus) > pr_info("CPU0: "); > print_cpu_info(&cpu_data(0)); > > + native_pv_lock_init(); > + > uv_system_init(); > > set_mtrr_aps_delayed_init(); > @@ -1350,7 +1352,6 @@ void __init native_smp_prepare_boot_cpu(void) > /* already set me in cpu_online_mask in boot_cpu_init() */ > cpumask_set_cpu(me, cpu_callout_mask); > cpu_set_state_online(me); > - native_pv_lock_init(); > } > > void __init native_smp_cpus_done(unsigned int max_cpus) > diff --git a/arch/x86/xen/smp_pv.c b/arch/x86/xen/smp_pv.c > index 5147140..570b2bc 100644 > --- a/arch/x86/xen/smp_pv.c > +++ b/arch/x86/xen/smp_pv.c > @@ -236,6 +236,8 @@ static void __init xen_pv_smp_prepare_cpus(unsigned int max_cpus) > xen_raw_printk(m); > panic(m); > } > + native_pv_lock_init(); > + This can be removed, as for a Xen domain native_pv_lock_init() is a nop. With that: Reviewed-by: Juergen Gross Juergen