From: Salil Mehta <salil.mehta@huawei.com>
To: <linux-arm-kernel@lists.infradead.org>
Cc: mark.rutland@arm.com, peter.maydell@linaro.org, gshan@redhat.com,
kvm@vger.kernel.org, mst@redhat.com, catalin.marinas@arm.com,
linuxarm@huawei.com, linux-kernel@vger.kernel.org,
will@kernel.org, lorenzo.pieralisi@arm.com, maz@kernel.org,
david@redhat.com, drjones@redhat.com, andre.przywara@arm.com,
mehta.salil.lnk@gmail.com, richard.henderson@linaro.org,
eric.auger@redhat.com, qemu-arm@nongnu.org, imammedo@redhat.com,
Salil Mehta <salil.mehta@huawei.com>,
christoffer.dall@arm.com, james.morse@arm.com,
sudeep.holla@arm.com, pbonzini@redhat.com
Subject: [PATCH RFC 0/4] Changes to Support *Virtual* CPU Hotplug for ARM64
Date: Thu, 25 Jun 2020 14:37:53 +0100 [thread overview]
Message-ID: <20200625133757.22332-1-salil.mehta@huawei.com> (raw)
Changes to support virtual cpu hotplug in QEMU[1] have been introduced to the
community as RFC. These are under review.
To support virtual cpu hotplug guest kernel must:
1. Identify disabled/present vcpus and set/unset the present mask of the vcpu
during initialization and hotplug event. It must also set the possible mask
(which includes disabled vcpus) during init of guest kernel.
2. Provide architecture specific ACPI hooks, for example to map/unmap the
logical cpuid to hwids/MPIDR. Linux kernel already has generic ACPI cpu
hotplug framework support.
Changes introduced in this patch-set also ensures that initialization of the
cpus when virtual cpu hotplug is not supported remains un-affected.
Repository:
(*) Kernel changes are at,
https://github.com/salil-mehta/linux.git virt-cpuhp-arm64/rfc-v1
(*) QEMU changes for vcpu hotplug could be cloned from below site,
https://github.com/salil-mehta/qemu.git virt-cpuhp-armv8/rfc-v1
THINGS TO DO:
1. Handling of per-cpu variables especially the first-chunk allocations
(which are NUMA aware) when the vcpu is hotplugged needs further attention
and review.
2. NUMA related stuff has not been fully tested both in QEMU and kernel.
3. Comprehensive Testing including when cpu hotplug is not supported.
4. Docs
DISCLAIMER:
This is not a complete work but an effort to present the arm vcpu hotplug
implementation to the community. This RFC is being used as a way to verify
the idea mentioned above and to support changes presented for QEMU[1] to
support vcpu hotplug. As of now this is *not* a production level code and might
have bugs. Only a basic testing has been done on HiSilicon Kunpeng920 ARM64
based SoC for Servers to verify the proof-of-concept that has been found working!
Best regards
Salil.
REFERENCES:
[1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg712010.html
[2] https://lkml.org/lkml/2019/6/28/1157
[3] https://lists.cs.columbia.edu/pipermail/kvmarm/2018-July/032316.html
Organization of Patches:
[Patch 1-3]
(*) Changes required during guest boot time to support vcpu hotplug
(*) Max cpu overflow checks
(*) Changes required to pre-setup cpu-operations even for disabled cpus
[Patch 4]
(*) Arch changes required by guest kernel ACPI CPU Hotplug framework.
Salil Mehta (4):
arm64: kernel: Handle disabled[(+)present] cpus in MADT/GICC during
init
arm64: kernel: Bound the total(present+disabled) cpus with nr_cpu_ids
arm64: kernel: Init cpu operations for all possible vcpus
arm64: kernel: Arch specific ACPI hooks(like logical cpuid<->hwid
etc.)
arch/arm64/kernel/smp.c | 153 ++++++++++++++++++++++++++++++++--------
1 file changed, 123 insertions(+), 30 deletions(-)
--
2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2020-06-25 13:45 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-25 13:37 Salil Mehta [this message]
2020-06-25 13:37 ` [PATCH RFC 1/4] arm64: kernel: Handle disabled[(+)present] cpus in MADT/GICC during init Salil Mehta
2020-06-25 13:37 ` [PATCH RFC 2/4] arm64: kernel: Bound the total(present+disabled) cpus with nr_cpu_ids Salil Mehta
2020-06-25 13:37 ` [PATCH RFC 3/4] arm64: kernel: Init cpu operations for all possible vcpus Salil Mehta
2020-06-25 13:37 ` [PATCH RFC 4/4] arm64: kernel: Arch specific ACPI hooks(like logical cpuid<->hwid etc.) Salil Mehta
2020-07-07 9:52 ` [PATCH RFC 0/4] Changes to Support *Virtual* CPU Hotplug for ARM64 Salil Mehta
2020-07-08 12:29 ` James Morse
2020-07-08 16:11 ` Salil Mehta
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=20200625133757.22332-1-salil.mehta@huawei.com \
--to=salil.mehta@huawei.com \
--cc=andre.przywara@arm.com \
--cc=catalin.marinas@arm.com \
--cc=christoffer.dall@arm.com \
--cc=david@redhat.com \
--cc=drjones@redhat.com \
--cc=eric.auger@redhat.com \
--cc=gshan@redhat.com \
--cc=imammedo@redhat.com \
--cc=james.morse@arm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=lorenzo.pieralisi@arm.com \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=mehta.salil.lnk@gmail.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=sudeep.holla@arm.com \
--cc=will@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).