qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Huth <thuth@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org
Cc: Pierre Morel <pmorel@linux.ibm.com>
Subject: [PULL 12/12] s390x/cpu topology: add max_threads machine class attribute
Date: Sun,  6 Nov 2022 16:31:56 +0100	[thread overview]
Message-ID: <20221106153156.620150-13-thuth@redhat.com> (raw)
In-Reply-To: <20221106153156.620150-1-thuth@redhat.com>

From: Pierre Morel <pmorel@linux.ibm.com>

The S390 CPU topology accepts the smp.threads argument while
in reality it does not effectively allow multthreading.

Let's keep this behavior for machines older than 7.2 and
refuse to use threads in newer machines until multithreading
is really exposed to the guest by the machine.

Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
Message-Id: <20221103170150.20789-3-pmorel@linux.ibm.com>
[thuth: Small fixes to the commit description]
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 include/hw/s390x/s390-virtio-ccw.h |  1 +
 hw/s390x/s390-virtio-ccw.c         | 11 +++++++++++
 2 files changed, 12 insertions(+)

diff --git a/include/hw/s390x/s390-virtio-ccw.h b/include/hw/s390x/s390-virtio-ccw.h
index 8a0090a071..4f8a39abda 100644
--- a/include/hw/s390x/s390-virtio-ccw.h
+++ b/include/hw/s390x/s390-virtio-ccw.h
@@ -40,6 +40,7 @@ struct S390CcwMachineClass {
     bool cpu_model_allowed;
     bool css_migration_enabled;
     bool hpage_1m_allowed;
+    int max_threads;
 };
 
 /* runtime-instrumentation allowed by the machine */
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 196773c833..560ddbb6fb 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -85,8 +85,15 @@ out:
 static void s390_init_cpus(MachineState *machine)
 {
     MachineClass *mc = MACHINE_GET_CLASS(machine);
+    S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc);
     int i;
 
+    if (machine->smp.threads > s390mc->max_threads) {
+        error_report("S390 does not support more than %d threads.",
+                     s390mc->max_threads);
+        exit(1);
+    }
+
     /* initialize possible_cpus */
     mc->possible_cpu_arch_ids(machine);
 
@@ -731,6 +738,7 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data)
     s390mc->cpu_model_allowed = true;
     s390mc->css_migration_enabled = true;
     s390mc->hpage_1m_allowed = true;
+    s390mc->max_threads = 1;
     mc->init = ccw_init;
     mc->reset = s390_machine_reset;
     mc->block_default_type = IF_VIRTIO;
@@ -859,8 +867,11 @@ static void ccw_machine_7_1_instance_options(MachineState *machine)
 
 static void ccw_machine_7_1_class_options(MachineClass *mc)
 {
+    S390CcwMachineClass *s390mc = S390_CCW_MACHINE_CLASS(mc);
+
     ccw_machine_7_2_class_options(mc);
     compat_props_add(mc->compat_props, hw_compat_7_1, hw_compat_7_1_len);
+    s390mc->max_threads = S390_MAX_CPUS;
 }
 DEFINE_CCW_MACHINE(7_1, "7.1", false);
 
-- 
2.31.1



  parent reply	other threads:[~2022-11-06 15:34 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-06 15:31 [PULL 00/12] qtest and s390x patches Thomas Huth
2022-11-06 15:31 ` [PULL 01/12] tests/qtest/libqos/e1000e: Refer common PCI ID definitions Thomas Huth
2022-11-06 15:31 ` [PULL 02/12] tests/qtest/libqos/e1000e: Set E1000_CTRL_SLU Thomas Huth
2022-11-06 15:31 ` [PULL 03/12] tests/qtest/e1000e-test: Use e1000_regs.h Thomas Huth
2022-11-06 15:31 ` [PULL 04/12] tests/qtest/libqos/e1000e: Use E1000_STATUS_ASDV_1000 Thomas Huth
2022-11-06 15:31 ` [PULL 05/12] tests/qtest/libqos/e1000e: Use IVAR shift definitions Thomas Huth
2022-11-06 15:31 ` [PULL 06/12] tests/qtest: Fix two format strings Thomas Huth
2022-11-06 15:31 ` [PULL 07/12] tests/qtest: migration-test: Enable TLS PSK tests for win32 Thomas Huth
2022-11-06 15:31 ` [PULL 08/12] gitlab-ci: increase clang-user timeout Thomas Huth
2022-11-06 15:31 ` [PULL 09/12] s390x/css: revert SCSW ctrl/flag bits on error Thomas Huth
2022-11-06 15:31 ` [PULL 10/12] s390x/pci: RPCIT second pass when mappings exhausted Thomas Huth
2022-11-06 15:31 ` [PULL 11/12] s390x: Register TYPE_S390_CCW_MACHINE properties as class properties Thomas Huth
2022-11-06 15:31 ` Thomas Huth [this message]
2022-11-07 20:11 ` [PULL 00/12] qtest and s390x patches Stefan Hajnoczi

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=20221106153156.620150-13-thuth@redhat.com \
    --to=thuth@redhat.com \
    --cc=pmorel@linux.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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).