[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v22 16/20] tests/avocado: s390x cpu topology entitlement test
From: |
Nina Schoetterl-Glausch |
Subject: |
Re: [PATCH v22 16/20] tests/avocado: s390x cpu topology entitlement tests |
Date: |
Fri, 08 Sep 2023 20:30:29 +0200 |
User-agent: |
Evolution 3.48.4 (3.48.4-1.fc38) |
On Thu, 2023-09-07 at 11:05 +0200, Thomas Huth wrote:
> On 01/09/2023 17.58, Nina Schoetterl-Glausch wrote:
> > 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>
> > 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 | 55 ++++++++++++++++++++++++++++++++++
> > 1 file changed, 55 insertions(+)
> >
> > diff --git a/tests/avocado/s390_topology.py b/tests/avocado/s390_topology.py
> > index d7ee36cb89..733093723a 100644
> > --- a/tests/avocado/s390_topology.py
> > +++ b/tests/avocado/s390_topology.py
> > @@ -243,3 +243,58 @@ 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 the polarization change to get stabilized in kernel
> > + before we check it through the sysfs.
> > + """
> > + exec_command_and_wait_for_pattern(self,
> > + """ sleep 1 ;
> > + /bin/cat /sys/devices/system/cpu/cpu0/polarization """,
> > + polarization)
>
> Using "sleep" in a function that is called multiple times will blow up the
> testing time quite a bit ... could this be done in a different way instead,
> e.g. by polling the sysfs file for the right value, or maybe there is
> something in the "dmesg" output that could be used as a reference?
Nothing in dmesg.
This works:
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")
>
> Thomas
>
>
- Re: [PATCH v22 15/20] tests/avocado: s390x cpu topology polarization, (continued)