All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG
@ 2022-03-22 11:22 David Hildenbrand
  2022-03-22 11:22 ` [PATCH v1 1/2] s390x/cpu_models: drop "msa5" from the TCG "max" model David Hildenbrand
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: David Hildenbrand @ 2022-03-22 11:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Thomas Huth, Daniel P . Berrangé,
	David Hildenbrand, Cornelia Huck, Richard Henderson, qemu-s390x

Let's simplify the "max" CPU model and just make it correspond to the
"qemu" CPU model of the latest QEMU machine from now on. This gets rid of
a warning we print when starting QEMU with "-cpu max".

Cc: Cornelia Huck <cohuck@redhat.com>
Cc: Thomas Huth <thuth@redhat.com>
Cc: Richard Henderson <richard.henderson@linaro.org>
Cc: Daniel P. Berrangé <berrange@redhat.com>

David Hildenbrand (2):
  s390x/cpu_models: drop "msa5" from the TCG "max" model
  s390x/cpu_models: make "max" match the unmodified "qemu" CPU model
    under TCG

 target/s390x/cpu_models.c   | 26 +++++++-------------------
 target/s390x/gen-features.c | 13 ++++++-------
 2 files changed, 13 insertions(+), 26 deletions(-)

-- 
2.35.1



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v1 1/2] s390x/cpu_models: drop "msa5" from the TCG "max" model
  2022-03-22 11:22 [PATCH v1 0/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG David Hildenbrand
@ 2022-03-22 11:22 ` David Hildenbrand
  2022-03-22 16:41   ` Thomas Huth
  2022-03-23 11:18   ` Cornelia Huck
  2022-03-22 11:22 ` [PATCH v1 2/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG David Hildenbrand
  2022-03-22 15:06 ` [PATCH v1 0/2] " Richard Henderson
  2 siblings, 2 replies; 7+ messages in thread
From: David Hildenbrand @ 2022-03-22 11:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Thomas Huth, Daniel P . Berrangé,
	David Hildenbrand, Cornelia Huck, Richard Henderson, qemu-s390x

We don't include the "msa5" feature in the "qemu" model because it
generates a warning. The PoP states:

"The message-security-assist extension 5 requires
the secure-hash-algorithm (SHA-512) capabilities of
the message-security-assist extension 2 as a prereq-
uisite. (March, 2015)"

As SHA-512 won't be supported in the near future, let's just drop the
feature from the "max" model. This avoids the warning and allows us for
making the "max" model match the "qemu" model (except for compat
machines). We don't lose much, as we only implement the function stubs
for MSA, exclusing any real subfunctions.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/897
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 target/s390x/gen-features.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
index 22846121c4..7b4430f9de 100644
--- a/target/s390x/gen-features.c
+++ b/target/s390x/gen-features.c
@@ -743,8 +743,6 @@ static uint16_t qemu_LATEST[] = {
 };
 /* add all new definitions before this point */
 static uint16_t qemu_MAX[] = {
-    /* generates a dependency warning, leave it out for now */
-    S390_FEAT_MSA_EXT_5,
 };
 
 /****** END FEATURE DEFS ******/
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v1 2/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG
  2022-03-22 11:22 [PATCH v1 0/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG David Hildenbrand
  2022-03-22 11:22 ` [PATCH v1 1/2] s390x/cpu_models: drop "msa5" from the TCG "max" model David Hildenbrand
@ 2022-03-22 11:22 ` David Hildenbrand
  2022-03-23 11:20   ` Cornelia Huck
  2022-03-22 15:06 ` [PATCH v1 0/2] " Richard Henderson
  2 siblings, 1 reply; 7+ messages in thread
From: David Hildenbrand @ 2022-03-22 11:22 UTC (permalink / raw)
  To: qemu-devel
  Cc: Thomas Huth, Daniel P . Berrangé,
	David Hildenbrand, Cornelia Huck, Richard Henderson, qemu-s390x

Before we were able to bump up the qemu CPU model to a z13, we included
some experimental features during development in the "max" model only.
Nowadays, the "max" model corresponds exactly to the "qemu" CPU model
of the latest QEMU machine under TCG.

Let's remove all the special casing, effectively making both models
match completely from now on, and clean up.

Signed-off-by: David Hildenbrand <david@redhat.com>
---
 target/s390x/cpu_models.c   | 26 +++++++-------------------
 target/s390x/gen-features.c | 11 ++++++-----
 2 files changed, 13 insertions(+), 24 deletions(-)

diff --git a/target/s390x/cpu_models.c b/target/s390x/cpu_models.c
index 6d71428056..1a562d2801 100644
--- a/target/s390x/cpu_models.c
+++ b/target/s390x/cpu_models.c
@@ -89,7 +89,6 @@ static S390CPUDef s390_cpu_defs[] = {
 #define QEMU_MAX_CPU_TYPE 0x8561
 #define QEMU_MAX_CPU_GEN 15
 #define QEMU_MAX_CPU_EC_GA 1
-static const S390FeatInit qemu_max_cpu_feat_init = { S390_FEAT_LIST_QEMU_MAX };
 static S390FeatBitmap qemu_max_cpu_feat;
 
 /* features part of a base model but not relevant for finding a base model */
@@ -728,7 +727,6 @@ static void s390_cpu_model_initfn(Object *obj)
     }
 }
 
-static S390CPUDef s390_qemu_cpu_def;
 static S390CPUModel s390_qemu_cpu_model;
 
 /* Set the qemu CPU model (on machine initialization). Must not be called
@@ -742,17 +740,8 @@ void s390_set_qemu_cpu_model(uint16_t type, uint8_t gen, uint8_t ec_ga,
     g_assert(def);
     g_assert(QTAILQ_EMPTY_RCU(&cpus));
 
-    /* TCG emulates some features that can usually not be enabled with
-     * the emulated machine generation. Make sure they can be enabled
-     * when using the QEMU model by adding them to full_feat. We have
-     * to copy the definition to do that.
-     */
-    memcpy(&s390_qemu_cpu_def, def, sizeof(s390_qemu_cpu_def));
-    bitmap_or(s390_qemu_cpu_def.full_feat, s390_qemu_cpu_def.full_feat,
-              qemu_max_cpu_feat, S390_FEAT_MAX);
-
     /* build the CPU model */
-    s390_qemu_cpu_model.def = &s390_qemu_cpu_def;
+    s390_qemu_cpu_model.def = def;
     bitmap_zero(s390_qemu_cpu_model.features, S390_FEAT_MAX);
     s390_init_feat_bitmap(feat_init, s390_qemu_cpu_model.features);
 }
@@ -885,9 +874,8 @@ static void s390_max_cpu_model_class_init(ObjectClass *oc, void *data)
 
     /*
      * The "max" model is neither static nor migration safe. Under KVM
-     * it represents the "host" model. Under TCG it represents some kind of
-     * "qemu" CPU model without compat handling and maybe with some additional
-     * CPU features that are not yet unlocked in the "qemu" model.
+     * it represents the "host" model. Under TCG it represents the "qemu" CPU
+     * model of the latest QEMU machine.
      */
     xcc->desc =
         "Enables all features supported by the accelerator in the current host";
@@ -966,13 +954,13 @@ static void init_ignored_base_feat(void)
 
 static void register_types(void)
 {
-    static const S390FeatInit qemu_latest_init = { S390_FEAT_LIST_QEMU_LATEST };
+    static const S390FeatInit qemu_max_init = { S390_FEAT_LIST_QEMU_MAX };
     int i;
 
     init_ignored_base_feat();
 
     /* init all bitmaps from gnerated data initially */
-    s390_init_feat_bitmap(qemu_max_cpu_feat_init, qemu_max_cpu_feat);
+    s390_init_feat_bitmap(qemu_max_init, qemu_max_cpu_feat);
     for (i = 0; i < ARRAY_SIZE(s390_cpu_defs); i++) {
         s390_init_feat_bitmap(s390_cpu_defs[i].base_init,
                               s390_cpu_defs[i].base_feat);
@@ -982,9 +970,9 @@ static void register_types(void)
                               s390_cpu_defs[i].full_feat);
     }
 
-    /* initialize the qemu model with latest definition */
+    /* initialize the qemu model with the maximum definition ("max" model) */
     s390_set_qemu_cpu_model(QEMU_MAX_CPU_TYPE, QEMU_MAX_CPU_GEN,
-                            QEMU_MAX_CPU_EC_GA, qemu_latest_init);
+                            QEMU_MAX_CPU_EC_GA, qemu_max_init);
 
     for (i = 0; i < ARRAY_SIZE(s390_cpu_defs); i++) {
         char *base_name = s390_base_cpu_type_name(s390_cpu_defs[i].name);
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
index 7b4430f9de..ec7d8ceab5 100644
--- a/target/s390x/gen-features.c
+++ b/target/s390x/gen-features.c
@@ -738,11 +738,13 @@ static uint16_t qemu_V6_2[] = {
     S390_FEAT_VECTOR_ENH,
 };
 
-static uint16_t qemu_LATEST[] = {
-    S390_FEAT_MISC_INSTRUCTION_EXT3,
-};
-/* add all new definitions before this point */
+/*
+ * Features for the "qemu" CPU model of the latest QEMU machine and the "max"
+ * CPU model under TCG. Don't include features that are not part of the full
+ * feature set of the current "max" CPU model generation.
+ */
 static uint16_t qemu_MAX[] = {
+    S390_FEAT_MISC_INSTRUCTION_EXT3,
 };
 
 /****** END FEATURE DEFS ******/
@@ -864,7 +866,6 @@ static FeatGroupDefSpec QemuFeatDef[] = {
     QEMU_FEAT_INITIALIZER(V4_1),
     QEMU_FEAT_INITIALIZER(V6_0),
     QEMU_FEAT_INITIALIZER(V6_2),
-    QEMU_FEAT_INITIALIZER(LATEST),
     QEMU_FEAT_INITIALIZER(MAX),
 };
 
-- 
2.35.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 0/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG
  2022-03-22 11:22 [PATCH v1 0/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG David Hildenbrand
  2022-03-22 11:22 ` [PATCH v1 1/2] s390x/cpu_models: drop "msa5" from the TCG "max" model David Hildenbrand
  2022-03-22 11:22 ` [PATCH v1 2/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG David Hildenbrand
@ 2022-03-22 15:06 ` Richard Henderson
  2 siblings, 0 replies; 7+ messages in thread
From: Richard Henderson @ 2022-03-22 15:06 UTC (permalink / raw)
  To: David Hildenbrand, qemu-devel
  Cc: qemu-s390x, Cornelia Huck, Daniel P . Berrangé, Thomas Huth

On 3/22/22 04:22, David Hildenbrand wrote:
> Let's simplify the "max" CPU model and just make it correspond to the
> "qemu" CPU model of the latest QEMU machine from now on. This gets rid of
> a warning we print when starting QEMU with "-cpu max".
> 
> Cc: Cornelia Huck <cohuck@redhat.com>
> Cc: Thomas Huth <thuth@redhat.com>
> Cc: Richard Henderson <richard.henderson@linaro.org>
> Cc: Daniel P. Berrangé <berrange@redhat.com>
> 
> David Hildenbrand (2):
>    s390x/cpu_models: drop "msa5" from the TCG "max" model
>    s390x/cpu_models: make "max" match the unmodified "qemu" CPU model
>      under TCG
> 
>   target/s390x/cpu_models.c   | 26 +++++++-------------------
>   target/s390x/gen-features.c | 13 ++++++-------
>   2 files changed, 13 insertions(+), 26 deletions(-)
> 

Series:
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 1/2] s390x/cpu_models: drop "msa5" from the TCG "max" model
  2022-03-22 11:22 ` [PATCH v1 1/2] s390x/cpu_models: drop "msa5" from the TCG "max" model David Hildenbrand
@ 2022-03-22 16:41   ` Thomas Huth
  2022-03-23 11:18   ` Cornelia Huck
  1 sibling, 0 replies; 7+ messages in thread
From: Thomas Huth @ 2022-03-22 16:41 UTC (permalink / raw)
  To: David Hildenbrand, qemu-devel
  Cc: Daniel P . Berrangé, qemu-s390x, Cornelia Huck, Richard Henderson

On 22/03/2022 12.22, David Hildenbrand wrote:
> We don't include the "msa5" feature in the "qemu" model because it
> generates a warning. The PoP states:
> 
> "The message-security-assist extension 5 requires
> the secure-hash-algorithm (SHA-512) capabilities of
> the message-security-assist extension 2 as a prereq-
> uisite. (March, 2015)"
> 
> As SHA-512 won't be supported in the near future, let's just drop the
> feature from the "max" model. This avoids the warning and allows us for
> making the "max" model match the "qemu" model (except for compat
> machines). We don't lose much, as we only implement the function stubs
> for MSA, exclusing any real subfunctions.

s/exclusing/excluding/
(but no need to respin just because of this)

> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/897
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>   target/s390x/gen-features.c | 2 --
>   1 file changed, 2 deletions(-)
> 
> diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
> index 22846121c4..7b4430f9de 100644
> --- a/target/s390x/gen-features.c
> +++ b/target/s390x/gen-features.c
> @@ -743,8 +743,6 @@ static uint16_t qemu_LATEST[] = {
>   };
>   /* add all new definitions before this point */
>   static uint16_t qemu_MAX[] = {
> -    /* generates a dependency warning, leave it out for now */
> -    S390_FEAT_MSA_EXT_5,
>   };
>   
>   /****** END FEATURE DEFS ******/

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 1/2] s390x/cpu_models: drop "msa5" from the TCG "max" model
  2022-03-22 11:22 ` [PATCH v1 1/2] s390x/cpu_models: drop "msa5" from the TCG "max" model David Hildenbrand
  2022-03-22 16:41   ` Thomas Huth
@ 2022-03-23 11:18   ` Cornelia Huck
  1 sibling, 0 replies; 7+ messages in thread
From: Cornelia Huck @ 2022-03-23 11:18 UTC (permalink / raw)
  To: David Hildenbrand, qemu-devel
  Cc: Daniel P . Berrangé,
	qemu-s390x, Richard Henderson, Thomas Huth, David Hildenbrand

On Tue, Mar 22 2022, David Hildenbrand <david@redhat.com> wrote:

> We don't include the "msa5" feature in the "qemu" model because it
> generates a warning. The PoP states:
>
> "The message-security-assist extension 5 requires
> the secure-hash-algorithm (SHA-512) capabilities of
> the message-security-assist extension 2 as a prereq-
> uisite. (March, 2015)"
>
> As SHA-512 won't be supported in the near future, let's just drop the
> feature from the "max" model. This avoids the warning and allows us for
> making the "max" model match the "qemu" model (except for compat
> machines). We don't lose much, as we only implement the function stubs
> for MSA, exclusing any real subfunctions.
>
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/897
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>  target/s390x/gen-features.c | 2 --
>  1 file changed, 2 deletions(-)

Reviewed-by: Cornelia Huck <cohuck@redhat.com>



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v1 2/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG
  2022-03-22 11:22 ` [PATCH v1 2/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG David Hildenbrand
@ 2022-03-23 11:20   ` Cornelia Huck
  0 siblings, 0 replies; 7+ messages in thread
From: Cornelia Huck @ 2022-03-23 11:20 UTC (permalink / raw)
  To: David Hildenbrand, qemu-devel
  Cc: Daniel P . Berrangé,
	qemu-s390x, Richard Henderson, Thomas Huth, David Hildenbrand

On Tue, Mar 22 2022, David Hildenbrand <david@redhat.com> wrote:

> Before we were able to bump up the qemu CPU model to a z13, we included
> some experimental features during development in the "max" model only.
> Nowadays, the "max" model corresponds exactly to the "qemu" CPU model
> of the latest QEMU machine under TCG.
>
> Let's remove all the special casing, effectively making both models
> match completely from now on, and clean up.
>
> Signed-off-by: David Hildenbrand <david@redhat.com>
> ---
>  target/s390x/cpu_models.c   | 26 +++++++-------------------
>  target/s390x/gen-features.c | 11 ++++++-----
>  2 files changed, 13 insertions(+), 24 deletions(-)

Reviewed-by: Cornelia Huck <cohuck@redhat.com>



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-03-23 11:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-22 11:22 [PATCH v1 0/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG David Hildenbrand
2022-03-22 11:22 ` [PATCH v1 1/2] s390x/cpu_models: drop "msa5" from the TCG "max" model David Hildenbrand
2022-03-22 16:41   ` Thomas Huth
2022-03-23 11:18   ` Cornelia Huck
2022-03-22 11:22 ` [PATCH v1 2/2] s390x/cpu_models: make "max" match the unmodified "qemu" CPU model under TCG David Hildenbrand
2022-03-23 11:20   ` Cornelia Huck
2022-03-22 15:06 ` [PATCH v1 0/2] " Richard Henderson

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.