da38d5c28e
- kvm-tests-avocado-update-aarch64_virt-test-to-exercise-c.patch [bz#2060839] - kvm-RHEL-only-tests-avocado-Switch-aarch64-tests-from-a5.patch [bz#2060839] - kvm-RHEL-only-AArch64-Drop-unsupported-CPU-types.patch [bz#2060839] - kvm-target-i386-deprecate-CPUs-older-than-x86_64-v2-ABI.patch [bz#2060839] - kvm-target-s390x-deprecate-CPUs-older-than-z14.patch [bz#2060839] - kvm-target-arm-deprecate-named-CPU-models.patch [bz#2060839] - kvm-meson.build-Fix-docker-test-build-alpine-when-includ.patch [bz#1968509] - kvm-QIOChannel-Add-flags-on-io_writev-and-introduce-io_f.patch [bz#1968509] - kvm-QIOChannelSocket-Implement-io_writev-zero-copy-flag-.patch [bz#1968509] - kvm-migration-Add-zero-copy-send-parameter-for-QMP-HMP-f.patch [bz#1968509] - kvm-migration-Add-migrate_use_tls-helper.patch [bz#1968509] - kvm-multifd-multifd_send_sync_main-now-returns-negative-.patch [bz#1968509] - kvm-multifd-Send-header-packet-without-flags-if-zero-cop.patch [bz#1968509] - kvm-multifd-Implement-zero-copy-write-in-multifd-migrati.patch [bz#1968509] - kvm-QIOChannelSocket-Introduce-assert-and-reduce-ifdefs-.patch [bz#1968509] - kvm-QIOChannelSocket-Fix-zero-copy-send-so-socket-flush-.patch [bz#1968509] - kvm-migration-Change-zero_copy_send-from-migration-param.patch [bz#1968509] - kvm-migration-Allow-migrate-recover-to-run-multiple-time.patch [bz#2096143] - Resolves: bz#2060839 (Consider deprecating CPU models like "kvm64" / "qemu64" on RHEL 9) - Resolves: bz#1968509 (Use MSG_ZEROCOPY on QEMU Live Migration) - Resolves: bz#2096143 (The migration port is not released if use it again for recovering postcopy migration)
130 lines
4.6 KiB
Diff
130 lines
4.6 KiB
Diff
From 1f8528b71d96c01dd6106f11681f4a4e2776ef5f Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
|
Date: Mon, 21 Mar 2022 12:05:42 +0000
|
|
Subject: [PATCH 06/18] target/arm: deprecate named CPU models
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
RH-Author: Daniel P. Berrangé <berrange@redhat.com>
|
|
RH-MergeRequest: 94: i386, aarch64, s390x: deprecate many named CPU models
|
|
RH-Commit: [6/6] afddeb9e898206fd04499f01c48caf7dc1a8b8ef (berrange/centos-src-qemu)
|
|
RH-Bugzilla: 2060839
|
|
RH-Acked-by: Thomas Huth <thuth@redhat.com>
|
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
|
|
|
|
KVM requires use of the 'host' CPU model, so named CPU models are only
|
|
needed for TCG. Since we don't consider TCG to be supported we can
|
|
deprecate all the named CPU models. TCG users can rely on 'max' model.
|
|
|
|
Note: this has the effect of deprecating the default built-in CPU
|
|
model 'cortex-a57'. Applications using QEMU are expected to make an
|
|
explicit choice about which CPU model they want, since no builtin
|
|
default can suit all purposes.
|
|
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=2060839
|
|
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
---
|
|
target/arm/cpu-qom.h | 1 +
|
|
target/arm/cpu.c | 5 +++++
|
|
target/arm/cpu.h | 2 ++
|
|
target/arm/cpu64.c | 8 +++++++-
|
|
target/arm/helper.c | 2 ++
|
|
5 files changed, 17 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/target/arm/cpu-qom.h b/target/arm/cpu-qom.h
|
|
index 64c44cef2d..82e97249bc 100644
|
|
--- a/target/arm/cpu-qom.h
|
|
+++ b/target/arm/cpu-qom.h
|
|
@@ -35,6 +35,7 @@ typedef struct ARMCPUInfo {
|
|
const char *name;
|
|
void (*initfn)(Object *obj);
|
|
void (*class_init)(ObjectClass *oc, void *data);
|
|
+ const char *deprecation_note;
|
|
} ARMCPUInfo;
|
|
|
|
void arm_cpu_register(const ARMCPUInfo *info);
|
|
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
|
|
index 5d4ca7a227..c74b0fb462 100644
|
|
--- a/target/arm/cpu.c
|
|
+++ b/target/arm/cpu.c
|
|
@@ -2105,8 +2105,13 @@ static void arm_cpu_instance_init(Object *obj)
|
|
static void cpu_register_class_init(ObjectClass *oc, void *data)
|
|
{
|
|
ARMCPUClass *acc = ARM_CPU_CLASS(oc);
|
|
+ CPUClass *cc = CPU_CLASS(oc);
|
|
|
|
acc->info = data;
|
|
+
|
|
+ if (acc->info->deprecation_note) {
|
|
+ cc->deprecation_note = acc->info->deprecation_note;
|
|
+ }
|
|
}
|
|
|
|
void arm_cpu_register(const ARMCPUInfo *info)
|
|
diff --git a/target/arm/cpu.h b/target/arm/cpu.h
|
|
index 23879de5fa..c0c9f680e5 100644
|
|
--- a/target/arm/cpu.h
|
|
+++ b/target/arm/cpu.h
|
|
@@ -33,6 +33,8 @@
|
|
#define KVM_HAVE_MCE_INJECTION 1
|
|
#endif
|
|
|
|
+#define RHEL_CPU_DEPRECATION "use 'host' / 'max'"
|
|
+
|
|
#define EXCP_UDEF 1 /* undefined instruction */
|
|
#define EXCP_SWI 2 /* software interrupt */
|
|
#define EXCP_PREFETCH_ABORT 3
|
|
diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c
|
|
index e80b831073..c8f152891c 100644
|
|
--- a/target/arm/cpu64.c
|
|
+++ b/target/arm/cpu64.c
|
|
@@ -975,7 +975,8 @@ static void aarch64_a64fx_initfn(Object *obj)
|
|
#endif /* disabled for RHEL */
|
|
|
|
static const ARMCPUInfo aarch64_cpus[] = {
|
|
- { .name = "cortex-a57", .initfn = aarch64_a57_initfn },
|
|
+ { .name = "cortex-a57", .initfn = aarch64_a57_initfn,
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION },
|
|
#if 0 /* Disabled for Red Hat Enterprise Linux */
|
|
{ .name = "cortex-a53", .initfn = aarch64_a53_initfn },
|
|
{ .name = "cortex-a72", .initfn = aarch64_a72_initfn },
|
|
@@ -1052,8 +1053,13 @@ static void aarch64_cpu_instance_init(Object *obj)
|
|
static void cpu_register_class_init(ObjectClass *oc, void *data)
|
|
{
|
|
ARMCPUClass *acc = ARM_CPU_CLASS(oc);
|
|
+ CPUClass *cc = CPU_CLASS(oc);
|
|
|
|
acc->info = data;
|
|
+
|
|
+ if (acc->info->deprecation_note) {
|
|
+ cc->deprecation_note = acc->info->deprecation_note;
|
|
+ }
|
|
}
|
|
|
|
void aarch64_cpu_register(const ARMCPUInfo *info)
|
|
diff --git a/target/arm/helper.c b/target/arm/helper.c
|
|
index 7d14650615..3d34f63e49 100644
|
|
--- a/target/arm/helper.c
|
|
+++ b/target/arm/helper.c
|
|
@@ -8560,6 +8560,7 @@ void arm_cpu_list(void)
|
|
static void arm_cpu_add_definition(gpointer data, gpointer user_data)
|
|
{
|
|
ObjectClass *oc = data;
|
|
+ CPUClass *cc = CPU_CLASS(oc);
|
|
CpuDefinitionInfoList **cpu_list = user_data;
|
|
CpuDefinitionInfo *info;
|
|
const char *typename;
|
|
@@ -8569,6 +8570,7 @@ static void arm_cpu_add_definition(gpointer data, gpointer user_data)
|
|
info->name = g_strndup(typename,
|
|
strlen(typename) - strlen("-" TYPE_ARM_CPU));
|
|
info->q_typename = g_strdup(typename);
|
|
+ info->deprecated = !!cc->deprecation_note;
|
|
|
|
QAPI_LIST_PREPEND(*cpu_list, info);
|
|
}
|
|
--
|
|
2.35.3
|
|
|