From: Thomas Huth <thuth@redhat.com>
To: Pierre Morel <pmorel@linux.ibm.com>, qemu-s390x@nongnu.org
Cc: qemu-devel@nongnu.org, borntraeger@de.ibm.com,
pasic@linux.ibm.com, richard.henderson@linaro.org,
david@redhat.com, cohuck@redhat.com, mst@redhat.com,
pbonzini@redhat.com, kvm@vger.kernel.org, ehabkost@redhat.com,
marcel.apfelbaum@gmail.com, eblake@redhat.com, armbru@redhat.com,
seiden@linux.ibm.com, nrb@linux.ibm.com, nsg@linux.ibm.com,
frankja@linux.ibm.com, berrange@redhat.com, clg@kaod.org
Subject: Re: [PATCH v21 15/20] tests/avocado: s390x cpu topology polarisation
Date: Wed, 5 Jul 2023 10:53:33 +0200 [thread overview]
Message-ID: <eb088f47-6b16-d8fc-cddc-b3a8f0e53ffe@redhat.com> (raw)
In-Reply-To: <20230630091752.67190-16-pmorel@linux.ibm.com>
On 30/06/2023 11.17, Pierre Morel wrote:
> Polarization is changed on a request from the guest.
> Let's verify the polarization is accordingly set by QEMU.
>
> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> ---
> tests/avocado/s390_topology.py | 46 ++++++++++++++++++++++++++++++++++
> 1 file changed, 46 insertions(+)
>
> diff --git a/tests/avocado/s390_topology.py b/tests/avocado/s390_topology.py
> index 1758ec1f13..2cf731cb1d 100644
> --- a/tests/avocado/s390_topology.py
> +++ b/tests/avocado/s390_topology.py
> @@ -40,6 +40,7 @@ class S390CPUTopology(QemuSystemTest):
> The polarization is changed on a request from the guest.
> """
> timeout = 90
> + event_timeout = 1
When running tests in CI and the machines are very loaded, the tests can be
stalled easily by multiple seconds. So using a timeout of 1 seconds sounds
way too low for me. Please use at least 5 seconds, or maybe even 10.
> KERNEL_COMMON_COMMAND_LINE = ('printk.time=0 '
> 'root=/dev/ram '
> @@ -99,6 +100,15 @@ def kernel_init(self):
> '-initrd', initrd_path,
> '-append', kernel_command_line)
>
> + def system_init(self):
> + self.log.info("System init")
> + exec_command(self, 'mount proc -t proc /proc')
> + time.sleep(0.2)
> + exec_command(self, 'mount sys -t sysfs /sys')
> + time.sleep(0.2)
Hard coded sleeps are ugly... they are prone to race conditions (e.g. on
loaded test systems), and they artificially slow down the test duration.
What about doing all three commands in one statement instead:
exec_command_and_wait_for_pattern(self,
"""mount proc -t proc /proc ;
mount sys -t sysfs /sys ;
/bin/cat /sys/devices/system/cpu/dispatching""",
'0')
?
> + exec_command_and_wait_for_pattern(self,
> + '/bin/cat /sys/devices/system/cpu/dispatching', '0')
> +
> def test_single(self):
> """
> This test checks the simplest topology with a single CPU.
> @@ -194,3 +204,39 @@ def test_hotplug_full(self):
> self.check_topology(3, 1, 1, 1, 'high', False)
> self.check_topology(4, 1, 1, 1, 'medium', False)
> self.check_topology(5, 2, 1, 1, 'high', True)
> +
> +
> + def guest_set_dispatching(self, dispatching):
> + exec_command(self,
> + f'echo {dispatching} > /sys/devices/system/cpu/dispatching')
> + self.vm.event_wait('CPU_POLARIZATION_CHANGE', self.event_timeout)
> + exec_command_and_wait_for_pattern(self,
> + '/bin/cat /sys/devices/system/cpu/dispatching', dispatching)
> +
> +
> + def test_polarisation(self):
> + """
> + This test verifies that QEMU modifies the entitlement change after
> + several guest polarization change requests.
> +
> + :avocado: tags=arch:s390x
> + :avocado: tags=machine:s390-ccw-virtio
> + """
> + self.kernel_init()
> + self.vm.launch()
> + self.wait_until_booted()
> +
> + self.system_init()
> + res = self.vm.qmp('query-cpu-polarization')
> + self.assertEqual(res['return']['polarization'], 'horizontal')
> + self.check_topology(0, 0, 0, 0, 'medium', False)
> +
> + self.guest_set_dispatching('1');
> + res = self.vm.qmp('query-cpu-polarization')
> + self.assertEqual(res['return']['polarization'], 'vertical')
> + self.check_topology(0, 0, 0, 0, 'medium', False)
> +
> + self.guest_set_dispatching('0');
> + res = self.vm.qmp('query-cpu-polarization')
> + self.assertEqual(res['return']['polarization'], 'horizontal')
> + self.check_topology(0, 0, 0, 0, 'medium', False)
next prev parent reply other threads:[~2023-07-05 8:54 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-30 9:17 [PATCH v21 00/20] s390x: CPU Topology Pierre Morel
2023-06-30 9:17 ` [PATCH v21 01/20] s390x/cpu topology: add s390 specifics to CPU topology Pierre Morel
2023-07-18 16:31 ` Nina Schoetterl-Glausch
2023-07-21 11:24 ` Pierre Morel
2023-07-24 10:15 ` Nina Schoetterl-Glausch
2023-07-25 8:43 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 02/20] s390x/cpu topology: add topology entries on CPU hotplug Pierre Morel
2023-07-04 10:32 ` Thomas Huth
2023-07-12 11:20 ` Pierre Morel
2023-07-24 20:19 ` Nina Schoetterl-Glausch
2023-07-25 8:44 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 03/20] target/s390x/cpu topology: handle STSI(15) and build the SYSIB Pierre Morel
2023-07-04 11:40 ` Thomas Huth
2023-07-04 12:27 ` Thomas Huth
2023-07-12 14:24 ` Pierre Morel
2023-07-12 20:14 ` Thomas Huth
2023-07-25 15:41 ` Nina Schoetterl-Glausch
2023-07-26 8:11 ` Pierre Morel
2023-07-27 17:31 ` Nina Schoetterl-Glausch
2023-06-30 9:17 ` [PATCH v21 04/20] s390x/sclp: reporting the maximum nested topology entries Pierre Morel
2023-06-30 9:17 ` [PATCH v21 05/20] s390x/cpu topology: resetting the Topology-Change-Report Pierre Morel
2023-07-25 13:43 ` Nina Schoetterl-Glausch
2023-06-30 9:17 ` [PATCH v21 06/20] s390x/cpu topology: interception of PTF instruction Pierre Morel
2023-07-04 12:16 ` Thomas Huth
2023-07-12 14:40 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 07/20] target/s390x/cpu topology: activate CPU topology Pierre Morel
2023-06-30 9:17 ` [PATCH v21 08/20] qapi/s390x/cpu topology: set-cpu-topology qmp command Pierre Morel
2023-07-04 12:53 ` Thomas Huth
2023-07-12 14:45 ` Pierre Morel
2023-07-18 7:54 ` Nina Schoetterl-Glausch
2023-07-18 12:25 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 09/20] machine: adding s390 topology to query-cpu-fast Pierre Morel
2023-07-04 12:55 ` Thomas Huth
2023-07-12 15:44 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 10/20] machine: adding s390 topology to info hotpluggable-cpus Pierre Morel
2023-07-04 12:59 ` Thomas Huth
2023-07-12 16:02 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 11/20] qapi/s390x/cpu topology: CPU_POLARIZATION_CHANGE qapi event Pierre Morel
2023-07-04 13:04 ` Thomas Huth
2023-07-12 16:05 ` Pierre Morel
2023-07-18 7:59 ` Nina Schoetterl-Glausch
2023-07-18 12:34 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 12/20] qapi/s390x/cpu topology: query-cpu-polarization qmp command Pierre Morel
2023-07-05 7:58 ` Thomas Huth
2023-07-12 16:12 ` Pierre Morel
2023-07-26 11:54 ` Nina Schoetterl-Glausch
2023-06-30 9:17 ` [PATCH v21 13/20] docs/s390x/cpu topology: document s390x cpu topology Pierre Morel
2023-07-05 8:41 ` Thomas Huth
2023-07-12 16:27 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 14/20] tests/avocado: s390x cpu topology core Pierre Morel
2023-07-04 13:14 ` Thomas Huth
2023-07-19 9:24 ` Pierre Morel
2023-07-12 20:00 ` Nina Schoetterl-Glausch
2023-07-19 11:05 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 15/20] tests/avocado: s390x cpu topology polarisation Pierre Morel
2023-07-05 8:53 ` Thomas Huth [this message]
2023-07-19 11:35 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 16/20] tests/avocado: s390x cpu topology entitlement tests Pierre Morel
2023-07-05 10:22 ` Thomas Huth
2023-07-12 19:37 ` Nina Schoetterl-Glausch
2023-07-12 20:11 ` Thomas Huth
2023-07-14 16:30 ` Nina Schoetterl-Glausch
2023-07-19 14:08 ` Pierre Morel
2023-07-19 14:13 ` Nina Schoetterl-Glausch
2023-07-19 15:34 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 17/20] tests/avocado: s390x cpu topology test dedicated CPU Pierre Morel
2023-07-19 14:09 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 18/20] tests/avocado: s390x cpu topology test socket full Pierre Morel
2023-07-05 10:26 ` Thomas Huth
2023-07-19 14:21 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 19/20] tests/avocado: s390x cpu topology dedicated errors Pierre Morel
2023-07-05 10:28 ` Thomas Huth
2023-07-19 14:21 ` Pierre Morel
2023-06-30 9:17 ` [PATCH v21 20/20] tests/avocado: s390x cpu topology bad move Pierre Morel
2023-07-05 10:32 ` Thomas Huth
2023-07-19 14:23 ` Pierre Morel
2023-07-05 10:02 ` [PATCH v21 00/20] s390x: CPU Topology Thomas Huth
2023-07-19 15:27 ` Pierre Morel
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=eb088f47-6b16-d8fc-cddc-b3a8f0e53ffe@redhat.com \
--to=thuth@redhat.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=clg@kaod.org \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=eblake@redhat.com \
--cc=ehabkost@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=marcel.apfelbaum@gmail.com \
--cc=mst@redhat.com \
--cc=nrb@linux.ibm.com \
--cc=nsg@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=pmorel@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=seiden@linux.ibm.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).