From: Chao Gao <chao.gao@intel.com>
To: Sean Christopherson <seanjc@google.com>
Cc: kvm@vger.kernel.org, pbonzini@redhat.com, kevin.tian@intel.com,
tglx@linutronix.de, Vitaly Kuznetsov <vkuznets@redhat.com>,
Wanpeng Li <wanpengli@tencent.com>,
Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/6] KVM: x86: Move check_processor_compatibility from init ops to runtime ops
Date: Tue, 11 Jan 2022 11:36:30 +0800 [thread overview]
Message-ID: <20220111033629.GC2175@gao-cwp> (raw)
In-Reply-To: <YdzAzT5AqO0aCsHk@google.com>
On Mon, Jan 10, 2022 at 11:27:09PM +0000, Sean Christopherson wrote:
>On Mon, Dec 27, 2021, Chao Gao wrote:
>> so that KVM can do compatibility checks on hotplugged CPUs. Drop __init
>> from check_processor_compatibility() and its callees.
>
>Losing the __init annotation on all these helpers makes me a bit sad, more from a
>documentation perspective than a "but we could shave a few bytes" perspective.
This makes sense.
>More than once I've wondered why some bit of code isn't __init, only to realize
>its used for hotplug.
Same problem to some global data structures which can be __initdata if hotplug
isn't supported.
>
>What if we added an __init_or_hotplug annotation that is a nop if HOTPLUG_CPU=y?
Personally __init_or_hotplug is a little long as an annotation. How about
__hotplug?
One concern is: is it acceptable to introduce a new annotation and use it in
new code but not fix all places that should use it in existing code.
I think the right process is
1. introduce a new annotation
2. fix existing code to use this annotation
3. add new code.
There is no doubt that #2 would take great effort. I'm not sure if it is really
worth it.
>At a glance, KVM could use that if the guts of kvm_online_cpu() were #idef'd out
>on !CONFIG_HOTPLUG_CPU. That also give us a bit of test coverage for bots that
>build with SMP=n.
Will do with your suggested-by.
>
>diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
>index a80e3b0c11a8..30bbcb4f4057 100644
>--- a/arch/x86/kvm/x86.c
>+++ b/arch/x86/kvm/x86.c
>@@ -11380,7 +11380,7 @@ void kvm_arch_hardware_unsetup(void)
> static_call(kvm_x86_hardware_unsetup)();
> }
>
>-int kvm_arch_check_processor_compat(void)
>+int __init_or_hotplug kvm_arch_check_processor_compat(void)
> {
> struct cpuinfo_x86 *c = &cpu_data(smp_processor_id());
>
>diff --git a/include/linux/init.h b/include/linux/init.h
>index d82b4b2e1d25..33788b3c180a 100644
>--- a/include/linux/init.h
>+++ b/include/linux/init.h
>@@ -53,6 +53,12 @@
> #define __exitdata __section(".exit.data")
> #define __exit_call __used __section(".exitcall.exit")
>
>+#ifdef CONFIG_HOTPLUG_CPU
>+#define __init_or_hotplug
>+#else
>+#define __init_or_hotplug __init
>+#endif /* CONFIG_HOTPLUG_CPU
>+
> /*
> * modpost check for section mismatches during the kernel build.
> * A section mismatch happens when there are references from a
>
next prev parent reply other threads:[~2022-01-11 3:25 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-27 8:15 [PATCH 0/6] Improve KVM's interaction with CPU hotplug Chao Gao
2021-12-27 8:15 ` Chao Gao
2021-12-27 8:15 ` Chao Gao
2021-12-27 8:15 ` Chao Gao
2021-12-27 8:15 ` Chao Gao
2021-12-27 8:15 ` [PATCH 1/6] KVM: x86: Move check_processor_compatibility from init ops to runtime ops Chao Gao
2022-01-10 23:27 ` Sean Christopherson
2022-01-11 3:36 ` Chao Gao [this message]
2022-01-12 17:59 ` Sean Christopherson
2021-12-27 8:15 ` [PATCH 2/6] KVM: x86: Use kvm_x86_ops in kvm_arch_check_processor_compat Chao Gao
2022-01-10 21:10 ` Sean Christopherson
2022-01-11 3:06 ` Chao Gao
2021-12-27 8:15 ` [PATCH 3/6] KVM: Remove opaque from kvm_arch_check_processor_compat Chao Gao
2021-12-27 8:15 ` Chao Gao
2021-12-27 8:15 ` Chao Gao
2021-12-27 8:15 ` Chao Gao
2021-12-27 8:15 ` Chao Gao
2022-01-10 23:06 ` Sean Christopherson
2022-01-10 23:06 ` Sean Christopherson
2022-01-10 23:06 ` Sean Christopherson
2022-01-10 23:06 ` Sean Christopherson
2022-01-10 23:06 ` Sean Christopherson
2022-01-11 3:19 ` Chao Gao
2022-01-11 3:19 ` Chao Gao
2022-01-11 3:19 ` Chao Gao
2022-01-11 3:19 ` Chao Gao
2022-01-11 3:19 ` Chao Gao
2022-01-12 17:20 ` Sean Christopherson
2022-01-12 17:20 ` Sean Christopherson
2022-01-12 17:20 ` Sean Christopherson
2022-01-12 17:20 ` Sean Christopherson
2022-01-12 17:20 ` Sean Christopherson
2022-01-12 17:21 ` Sean Christopherson
2022-01-12 17:21 ` Sean Christopherson
2022-01-12 17:21 ` Sean Christopherson
2022-01-12 17:21 ` Sean Christopherson
2022-01-12 17:21 ` Sean Christopherson
2021-12-27 8:15 ` [PATCH 4/6] KVM: Rename and move CPUHP_AP_KVM_STARTING to ONLINE section Chao Gao
2021-12-27 8:15 ` [PATCH 5/6] KVM: x86: Remove WARN_ON in kvm_arch_check_processor_compat Chao Gao
2022-01-10 22:59 ` Sean Christopherson
2022-01-11 2:15 ` Tian, Kevin
2022-01-11 19:48 ` Sean Christopherson
2022-01-12 11:00 ` Chao Gao
2022-01-12 17:35 ` Sean Christopherson
2022-01-17 13:35 ` Chao Gao
2022-01-17 13:46 ` Chao Gao
2022-01-19 0:34 ` Sean Christopherson
2021-12-27 8:15 ` [PATCH 6/6] KVM: Do compatibility checks on hotplugged CPUs Chao Gao
2022-01-11 0:46 ` Sean Christopherson
2022-01-11 5:32 ` Chao Gao
2022-01-12 17:52 ` Sean Christopherson
2022-01-12 23:01 ` Jim Mattson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220111033629.GC2175@gao-cwp \
--to=chao.gao@intel.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jmattson@google.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=vkuznets@redhat.com \
--cc=wanpengli@tencent.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.