mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-07-16 08:26:16 +00:00
Initially enable vcpu hotplug in qemu for arm base on Salli's work[1]. Fixes:#3280 Signed-off-by: Huang Shijie <shijie8@gmail.com> [1] https://github.com/salil-mehta/qemu/tree/virt-cpuhp-armv8/rfc-v1
52 lines
2.0 KiB
Diff
52 lines
2.0 KiB
Diff
From e9a06ca70bbb956ec96f69e2e7bebc2a7b9044a8 Mon Sep 17 00:00:00 2001
|
|
From: Salil Mehta <salil.mehta@huawei.com>
|
|
Date: Thu, 25 Nov 2021 17:38:19 +0800
|
|
Subject: [PATCH 11/28] arm/cpuhp: Update GED _EVT method AML with cpu scan
|
|
|
|
OSPM evaluates _EVT method to map the event. The cpu hotplug event eventually
|
|
results in start of the cpu scan. Scan figures out the cpu and the kind of
|
|
event(plug/unplug) and notifies it back to the guest.
|
|
|
|
The change in this patch updates the GED AML _EVT method with the call to
|
|
\\_SB.CPUS.CSCN which will do above.
|
|
|
|
Co-developed-by: Keqian Zhu <zhukeqian1@huawei.com>
|
|
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
|
|
Signed-off-by: Huang Shijie <shijie8@gmail.com>
|
|
---
|
|
hw/acpi/generic_event_device.c | 4 ++++
|
|
include/hw/acpi/cpu_hotplug.h | 2 ++
|
|
2 files changed, 6 insertions(+)
|
|
|
|
diff --git a/hw/acpi/generic_event_device.c b/hw/acpi/generic_event_device.c
|
|
index 1ed7623907..7278b89c6a 100644
|
|
--- a/hw/acpi/generic_event_device.c
|
|
+++ b/hw/acpi/generic_event_device.c
|
|
@@ -108,6 +108,10 @@ void build_ged_aml(Aml *table, const char *name, HotplugHandler *hotplug_dev,
|
|
aml_append(if_ctx, aml_call0(MEMORY_DEVICES_CONTAINER "."
|
|
MEMORY_SLOT_SCAN_METHOD));
|
|
break;
|
|
+ case ACPI_GED_CPU_HOTPLUG_EVT:
|
|
+ aml_append(if_ctx, aml_call0(ACPI_CPU_CONTAINER "."
|
|
+ ACPI_CPU_SCAN_METHOD));
|
|
+ break;
|
|
case ACPI_GED_PWR_DOWN_EVT:
|
|
aml_append(if_ctx,
|
|
aml_notify(aml_name(ACPI_POWER_BUTTON_DEVICE),
|
|
diff --git a/include/hw/acpi/cpu_hotplug.h b/include/hw/acpi/cpu_hotplug.h
|
|
index 48b291e45e..ef631750b4 100644
|
|
--- a/include/hw/acpi/cpu_hotplug.h
|
|
+++ b/include/hw/acpi/cpu_hotplug.h
|
|
@@ -20,6 +20,8 @@
|
|
#include "hw/acpi/cpu.h"
|
|
|
|
#define ACPI_CPU_HOTPLUG_REG_LEN 12
|
|
+#define ACPI_CPU_SCAN_METHOD "CSCN"
|
|
+#define ACPI_CPU_CONTAINER "\\_SB.CPUS"
|
|
|
|
typedef struct AcpiCpuHotplug {
|
|
Object *device;
|
|
--
|
|
2.30.2
|
|
|