From: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
To: qemu-devel@nongnu.org, qemu-s390x@nongnu.org,
Eduardo Habkost <eduardo@habkost.net>,
Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>,
David Hildenbrand <david@redhat.com>,
Halil Pasic <pasic@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Eric Farman <farman@linux.ibm.com>,
Thomas Huth <thuth@redhat.com>, Eric Blake <eblake@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
Michael Roth <michael.roth@amd.com>,
Nina Schoetterl-Glausch <nsg@linux.ibm.com>
Cc: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Daniel P. Berrangé" <berrange@redhat.com>,
"Ilya Leoshkevich" <iii@linux.ibm.com>,
"Cleber Rosa" <crosa@redhat.com>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Beraldo Leal" <bleal@redhat.com>,
"Pierre Morel" <pmorel@linux.ibm.com>
Subject: [PATCH v24 17/21] tests/avocado: s390x cpu topology entitlement tests
Date: Tue, 26 Sep 2023 14:15:30 +0200 [thread overview]
Message-ID: <20230926121534.406035-18-nsg@linux.ibm.com> (raw)
In-Reply-To: <20230926121534.406035-1-nsg@linux.ibm.com>
From: Pierre Morel <pmorel@linux.ibm.com>
Test changes in the entitlement from both a guest and a host point of
view, depending on the polarization.
Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
Reviewed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
Co-developed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
Signed-off-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
---
tests/avocado/s390_topology.py | 62 ++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
diff --git a/tests/avocado/s390_topology.py b/tests/avocado/s390_topology.py
index 8166cee134..24fac9a54d 100644
--- a/tests/avocado/s390_topology.py
+++ b/tests/avocado/s390_topology.py
@@ -243,3 +243,65 @@ def test_polarization(self):
res = self.vm.qmp('query-s390x-cpu-polarization')
self.assertEqual(res['return']['polarization'], 'horizontal')
self.check_topology(0, 0, 0, 0, 'medium', False)
+
+
+ def check_polarization(self, polarization):
+ #We need to wait for the change to have been propagated to the kernel
+ exec_command_and_wait_for_pattern(self,
+ "\n".join([
+ "timeout 1 sh -c 'while true",
+ 'do',
+ ' syspath="/sys/devices/system/cpu/cpu0/polarization"',
+ ' polarization="$(cat "$syspath")" || exit',
+ f' if [ "$polarization" = "{polarization}" ]; then',
+ ' exit 0',
+ ' fi',
+ ' sleep 0.01',
+ #searched for strings mustn't show up in command, '' to obfuscate
+ "done' && echo succ''ess || echo fail''ure",
+ ]),
+ "success", "failure")
+
+
+ def test_entitlement(self):
+ """
+ This test verifies that QEMU modifies the entitlement
+ after a guest request and that the guest sees the change.
+
+ :avocado: tags=arch:s390x
+ :avocado: tags=machine:s390-ccw-virtio
+ """
+ self.kernel_init()
+ self.vm.launch()
+ self.wait_until_booted()
+
+ self.system_init()
+
+ self.check_polarization('horizontal')
+ self.check_topology(0, 0, 0, 0, 'medium', False)
+
+ self.guest_set_dispatching('1')
+ self.check_polarization('vertical:medium')
+ self.check_topology(0, 0, 0, 0, 'medium', False)
+
+ res = self.vm.qmp('set-cpu-topology',
+ {'core-id': 0, 'entitlement': 'low'})
+ self.assertEqual(res['return'], {})
+ self.check_polarization('vertical:low')
+ self.check_topology(0, 0, 0, 0, 'low', False)
+
+ res = self.vm.qmp('set-cpu-topology',
+ {'core-id': 0, 'entitlement': 'medium'})
+ self.assertEqual(res['return'], {})
+ self.check_polarization('vertical:medium')
+ self.check_topology(0, 0, 0, 0, 'medium', False)
+
+ res = self.vm.qmp('set-cpu-topology',
+ {'core-id': 0, 'entitlement': 'high'})
+ self.assertEqual(res['return'], {})
+ self.check_polarization('vertical:high')
+ self.check_topology(0, 0, 0, 0, 'high', False)
+
+ self.guest_set_dispatching('0');
+ self.check_polarization("horizontal")
+ self.check_topology(0, 0, 0, 0, 'high', False)
--
2.39.2
next prev parent reply other threads:[~2023-09-26 12:20 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-26 12:15 [PATCH v24 00/21] s390x: CPU Topology Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 01/21] qapi: machine.json: change docs regarding CpuInstanceProperties Nina Schoetterl-Glausch
2023-10-12 5:59 ` Markus Armbruster
2023-10-13 11:46 ` Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 02/21] CPU topology: extend with s390 specifics Nina Schoetterl-Glausch
2023-09-28 11:31 ` Thomas Huth
2023-10-04 16:39 ` Nina Schoetterl-Glausch
2023-10-04 17:32 ` Thomas Huth
2023-09-26 12:15 ` [PATCH v24 03/21] s390x/cpu topology: add topology entries on CPU hotplug Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 04/21] target/s390x/cpu topology: handle STSI(15) and build the SYSIB Nina Schoetterl-Glausch
2023-09-28 13:05 ` Thomas Huth
2023-09-26 12:15 ` [PATCH v24 05/21] s390x/sclp: reporting the maximum nested topology entries Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 06/21] s390x/cpu topology: resetting the Topology-Change-Report Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 07/21] s390x/cpu topology: interception of PTF instruction Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 08/21] target/s390x/cpu topology: activate CPU topology Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 09/21] qapi/s390x/cpu topology: set-cpu-topology qmp command Nina Schoetterl-Glausch
2023-09-28 13:29 ` Thomas Huth
2023-09-26 12:15 ` [PATCH v24 10/21] machine: adding s390 topology to query-cpu-fast Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 11/21] machine: adding s390 topology to info hotpluggable-cpus Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 12/21] qapi/s390x/cpu topology: CPU_POLARIZATION_CHANGE qapi event Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 13/21] qapi/s390x/cpu topology: add query-s390x-cpu-polarization command Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 14/21] docs/s390x/cpu topology: document s390x cpu topology Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 15/21] tests/avocado: s390x cpu topology core Nina Schoetterl-Glausch
2023-09-28 14:54 ` Thomas Huth
2023-09-26 12:15 ` [PATCH v24 16/21] tests/avocado: s390x cpu topology polarization Nina Schoetterl-Glausch
2023-09-26 12:15 ` Nina Schoetterl-Glausch [this message]
2023-09-28 14:55 ` [PATCH v24 17/21] tests/avocado: s390x cpu topology entitlement tests Thomas Huth
2023-09-26 12:15 ` [PATCH v24 18/21] tests/avocado: s390x cpu topology test dedicated CPU Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 19/21] tests/avocado: s390x cpu topology test socket full Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 20/21] tests/avocado: s390x cpu topology dedicated errors Nina Schoetterl-Glausch
2023-09-26 12:15 ` [PATCH v24 21/21] tests/avocado: s390x cpu topology bad move Nina Schoetterl-Glausch
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=20230926121534.406035-18-nsg@linux.ibm.com \
--to=nsg@linux.ibm.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=bleal@redhat.com \
--cc=borntraeger@linux.ibm.com \
--cc=crosa@redhat.com \
--cc=david@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=farman@linux.ibm.com \
--cc=iii@linux.ibm.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=michael.roth@amd.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=pmorel@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
--cc=wainersm@redhat.com \
--cc=wangyanan55@huawei.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).