This test takes care to check the changes on different entitlements
when the guest requests a polarization change.
Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
---
tests/avocado/s390_topology.py | 47 ++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/tests/avocado/s390_topology.py b/tests/avocado/s390_topology.py
index 2cf731cb1d..4855e5d7e4 100644
--- a/tests/avocado/s390_topology.py
+++ b/tests/avocado/s390_topology.py
@@ -240,3 +240,50 @@ def test_polarisation(self):
res = self.vm.qmp('query-cpu-polarization')
self.assertEqual(res['return']['polarization'], 'horizontal')
self.check_topology(0, 0, 0, 0, 'medium', False)
+
+ def test_entitlement(self):
+ """
+ This test verifies that QEMU modifies the polarization
+ after a guest request.
+
+ :avocado: tags=arch:s390x
+ :avocado: tags=machine:s390-ccw-virtio
+ """
+ self.kernel_init()
+ self.vm.add_args('-smp',
+ '4,drawers=2,books=2,sockets=3,cores=2,maxcpus=24')
+ self.vm.launch()
+ self.wait_until_booted()
+
+ self.system_init()
+
+ res = self.vm.qmp('set-cpu-topology',
+ {'core-id': 0, 'entitlement': 'low'})
+ self.assertEqual(res['return'], {})
+ res = self.vm.qmp('set-cpu-topology',
+ {'core-id': 1, 'entitlement': 'medium'})
+ self.assertEqual(res['return'], {})
+ res = self.vm.qmp('set-cpu-topology',
+ {'core-id': 2, 'entitlement': 'high'})
+ self.assertEqual(res['return'], {})
+ res = self.vm.qmp('set-cpu-topology',
+ {'core-id': 3, 'entitlement': 'high'})
+ self.assertEqual(res['return'], {})
+ self.check_topology(0, 0, 0, 0, 'low', False)
+ self.check_topology(1, 0, 0, 0, 'medium', False)
+ self.check_topology(2, 1, 0, 0, 'high', False)
+ self.check_topology(3, 1, 0, 0, 'high', False)
+
+ self.guest_set_dispatching('1');
+
+ self.check_topology(0, 0, 0, 0, 'low', False)
+ self.check_topology(1, 0, 0, 0, 'medium', False)
+ self.check_topology(2, 1, 0, 0, 'high', False)
+ self.check_topology(3, 1, 0, 0, 'high', False)
+
+ self.guest_set_dispatching('0');
+
+ self.check_topology(0, 0, 0, 0, 'low', False)
+ self.check_topology(1, 0, 0, 0, 'medium', False)
+ self.check_topology(2, 1, 0, 0, 'high', False)
+ self.check_topology(3, 1, 0, 0, 'high', False)
--
2.31.1
On 30/06/2023 11.17, Pierre Morel wrote:
> This test takes care to check the changes on different entitlements
> when the guest requests a polarization change.
>
> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> ---
> tests/avocado/s390_topology.py | 47 ++++++++++++++++++++++++++++++++++
> 1 file changed, 47 insertions(+)
>
> diff --git a/tests/avocado/s390_topology.py b/tests/avocado/s390_topology.py
> index 2cf731cb1d..4855e5d7e4 100644
> --- a/tests/avocado/s390_topology.py
> +++ b/tests/avocado/s390_topology.py
> @@ -240,3 +240,50 @@ def test_polarisation(self):
> res = self.vm.qmp('query-cpu-polarization')
> self.assertEqual(res['return']['polarization'], 'horizontal')
> self.check_topology(0, 0, 0, 0, 'medium', False)
> +
> + def test_entitlement(self):
> + """
> + This test verifies that QEMU modifies the polarization
> + after a guest request.
...
> + self.check_topology(0, 0, 0, 0, 'low', False)
> + self.check_topology(1, 0, 0, 0, 'medium', False)
> + self.check_topology(2, 1, 0, 0, 'high', False)
> + self.check_topology(3, 1, 0, 0, 'high', False)
> +
> + self.guest_set_dispatching('1');
> +
> + self.check_topology(0, 0, 0, 0, 'low', False)
> + self.check_topology(1, 0, 0, 0, 'medium', False)
> + self.check_topology(2, 1, 0, 0, 'high', False)
> + self.check_topology(3, 1, 0, 0, 'high', False)
> +
> + self.guest_set_dispatching('0');
> +
> + self.check_topology(0, 0, 0, 0, 'low', False)
> + self.check_topology(1, 0, 0, 0, 'medium', False)
> + self.check_topology(2, 1, 0, 0, 'high', False)
> + self.check_topology(3, 1, 0, 0, 'high', False)
Sorry, I think I'm too blind to see it, but what has changed after the guest
changed the polarization?
Thomas
On Wed, 2023-07-05 at 12:22 +0200, Thomas Huth wrote:
> On 30/06/2023 11.17, Pierre Morel wrote:
> > This test takes care to check the changes on different entitlements
> > when the guest requests a polarization change.
> >
> > Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> > ---
> > tests/avocado/s390_topology.py | 47
> > ++++++++++++++++++++++++++++++++++
> > 1 file changed, 47 insertions(+)
> >
> > diff --git a/tests/avocado/s390_topology.py
> > b/tests/avocado/s390_topology.py
> > index 2cf731cb1d..4855e5d7e4 100644
> > --- a/tests/avocado/s390_topology.py
> > +++ b/tests/avocado/s390_topology.py
> > @@ -240,3 +240,50 @@ def test_polarisation(self):
> > res = self.vm.qmp('query-cpu-polarization')
> > self.assertEqual(res['return']['polarization'],
> > 'horizontal')
> > self.check_topology(0, 0, 0, 0, 'medium', False)
> > +
> > + def test_entitlement(self):
> > + """
> > + This test verifies that QEMU modifies the polarization
> > + after a guest request.
> ...
> > + self.check_topology(0, 0, 0, 0, 'low', False)
> > + self.check_topology(1, 0, 0, 0, 'medium', False)
> > + self.check_topology(2, 1, 0, 0, 'high', False)
> > + self.check_topology(3, 1, 0, 0, 'high', False)
> > +
> > + self.guest_set_dispatching('1');
> > +
> > + self.check_topology(0, 0, 0, 0, 'low', False)
> > + self.check_topology(1, 0, 0, 0, 'medium', False)
> > + self.check_topology(2, 1, 0, 0, 'high', False)
> > + self.check_topology(3, 1, 0, 0, 'high', False)
> > +
> > + self.guest_set_dispatching('0');
> > +
> > + self.check_topology(0, 0, 0, 0, 'low', False)
> > + self.check_topology(1, 0, 0, 0, 'medium', False)
> > + self.check_topology(2, 1, 0, 0, 'high', False)
> > + self.check_topology(3, 1, 0, 0, 'high', False)
>
> Sorry, I think I'm too blind to see it, but what has changed after
> the guest
> changed the polarization?
Nothing, the values are retained, they're just not active.
The guest will see a horizontal polarization until it changes back to
vertical.
>
> Thomas
>
On 12/07/2023 21.37, Nina Schoetterl-Glausch wrote:
> On Wed, 2023-07-05 at 12:22 +0200, Thomas Huth wrote:
>> On 30/06/2023 11.17, Pierre Morel wrote:
>>> This test takes care to check the changes on different entitlements
>>> when the guest requests a polarization change.
>>>
>>> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
>>> ---
>>> tests/avocado/s390_topology.py | 47
>>> ++++++++++++++++++++++++++++++++++
>>> 1 file changed, 47 insertions(+)
>>>
>>> diff --git a/tests/avocado/s390_topology.py
>>> b/tests/avocado/s390_topology.py
>>> index 2cf731cb1d..4855e5d7e4 100644
>>> --- a/tests/avocado/s390_topology.py
>>> +++ b/tests/avocado/s390_topology.py
>>> @@ -240,3 +240,50 @@ def test_polarisation(self):
>>> res = self.vm.qmp('query-cpu-polarization')
>>> self.assertEqual(res['return']['polarization'],
>>> 'horizontal')
>>> self.check_topology(0, 0, 0, 0, 'medium', False)
>>> +
>>> + def test_entitlement(self):
>>> + """
>>> + This test verifies that QEMU modifies the polarization
>>> + after a guest request.
>> ...
>>> + self.check_topology(0, 0, 0, 0, 'low', False)
>>> + self.check_topology(1, 0, 0, 0, 'medium', False)
>>> + self.check_topology(2, 1, 0, 0, 'high', False)
>>> + self.check_topology(3, 1, 0, 0, 'high', False)
>>> +
>>> + self.guest_set_dispatching('1');
>>> +
>>> + self.check_topology(0, 0, 0, 0, 'low', False)
>>> + self.check_topology(1, 0, 0, 0, 'medium', False)
>>> + self.check_topology(2, 1, 0, 0, 'high', False)
>>> + self.check_topology(3, 1, 0, 0, 'high', False)
>>> +
>>> + self.guest_set_dispatching('0');
>>> +
>>> + self.check_topology(0, 0, 0, 0, 'low', False)
>>> + self.check_topology(1, 0, 0, 0, 'medium', False)
>>> + self.check_topology(2, 1, 0, 0, 'high', False)
>>> + self.check_topology(3, 1, 0, 0, 'high', False)
>>
>> Sorry, I think I'm too blind to see it, but what has changed after
>> the guest
>> changed the polarization?
>
> Nothing, the values are retained, they're just not active.
> The guest will see a horizontal polarization until it changes back to
> vertical.
But then the comment in front of it ("This test verifies that QEMU
*modifies* the polarization...") does not quite match, does it?
Thomas
On Wed, 2023-07-12 at 22:11 +0200, Thomas Huth wrote:
> On 12/07/2023 21.37, Nina Schoetterl-Glausch wrote:
> > On Wed, 2023-07-05 at 12:22 +0200, Thomas Huth wrote:
> > > On 30/06/2023 11.17, Pierre Morel wrote:
> > > > This test takes care to check the changes on different
> > > > entitlements
> > > > when the guest requests a polarization change.
> > > >
> > > > Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> > > > ---
> > > > tests/avocado/s390_topology.py | 47
> > > > ++++++++++++++++++++++++++++++++++
> > > > 1 file changed, 47 insertions(+)
> > > >
> > > > diff --git a/tests/avocado/s390_topology.py
> > > > b/tests/avocado/s390_topology.py
> > > > index 2cf731cb1d..4855e5d7e4 100644
> > > > --- a/tests/avocado/s390_topology.py
> > > > +++ b/tests/avocado/s390_topology.py
> > > > @@ -240,3 +240,50 @@ def test_polarisation(self):
> > > > res = self.vm.qmp('query-cpu-polarization')
> > > > self.assertEqual(res['return']['polarization'],
> > > > 'horizontal')
> > > > self.check_topology(0, 0, 0, 0, 'medium', False)
> > > > +
> > > > + def test_entitlement(self):
> > > > + """
> > > > + This test verifies that QEMU modifies the polarization
> > > > + after a guest request.
> > > ...
> > > > + self.check_topology(0, 0, 0, 0, 'low', False)
> > > > + self.check_topology(1, 0, 0, 0, 'medium', False)
> > > > + self.check_topology(2, 1, 0, 0, 'high', False)
> > > > + self.check_topology(3, 1, 0, 0, 'high', False)
> > > > +
> > > > + self.guest_set_dispatching('1');
> > > > +
> > > > + self.check_topology(0, 0, 0, 0, 'low', False)
> > > > + self.check_topology(1, 0, 0, 0, 'medium', False)
> > > > + self.check_topology(2, 1, 0, 0, 'high', False)
> > > > + self.check_topology(3, 1, 0, 0, 'high', False)
> > > > +
> > > > + self.guest_set_dispatching('0');
> > > > +
> > > > + self.check_topology(0, 0, 0, 0, 'low', False)
> > > > + self.check_topology(1, 0, 0, 0, 'medium', False)
> > > > + self.check_topology(2, 1, 0, 0, 'high', False)
> > > > + self.check_topology(3, 1, 0, 0, 'high', False)
> > >
> > > Sorry, I think I'm too blind to see it, but what has changed
> > > after
> > > the guest
> > > changed the polarization?
> >
> > Nothing, the values are retained, they're just not active.
> > The guest will see a horizontal polarization until it changes back
> > to
> > vertical.
>
> But then the comment in front of it ("This test verifies that QEMU
> *modifies* the polarization...") does not quite match, does it?
Yeah, it tests that QEMU reports it's own state changed when using
set-cpu-topology.
I think it would be a good idea to get the guests view from the sysfs,
also.
>
> Thomas
>
>
On 7/14/23 18:30, Nina Schoetterl-Glausch wrote:
> On Wed, 2023-07-12 at 22:11 +0200, Thomas Huth wrote:
>> On 12/07/2023 21.37, Nina Schoetterl-Glausch wrote:
>>> On Wed, 2023-07-05 at 12:22 +0200, Thomas Huth wrote:
>>>> On 30/06/2023 11.17, Pierre Morel wrote:
>>>>> This test takes care to check the changes on different
>>>>> entitlements
>>>>> when the guest requests a polarization change.
>>>>>
>>>>> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
>>>>> ---
>>>>> tests/avocado/s390_topology.py | 47
>>>>> ++++++++++++++++++++++++++++++++++
>>>>> 1 file changed, 47 insertions(+)
>>>>>
>>>>> diff --git a/tests/avocado/s390_topology.py
>>>>> b/tests/avocado/s390_topology.py
>>>>> index 2cf731cb1d..4855e5d7e4 100644
>>>>> --- a/tests/avocado/s390_topology.py
>>>>> +++ b/tests/avocado/s390_topology.py
>>>>> @@ -240,3 +240,50 @@ def test_polarisation(self):
>>>>> res = self.vm.qmp('query-cpu-polarization')
>>>>> self.assertEqual(res['return']['polarization'],
>>>>> 'horizontal')
>>>>> self.check_topology(0, 0, 0, 0, 'medium', False)
>>>>> +
>>>>> + def test_entitlement(self):
>>>>> + """
>>>>> + This test verifies that QEMU modifies the polarization
>>>>> + after a guest request.
>>>> ...
>>>>> + self.check_topology(0, 0, 0, 0, 'low', False)
>>>>> + self.check_topology(1, 0, 0, 0, 'medium', False)
>>>>> + self.check_topology(2, 1, 0, 0, 'high', False)
>>>>> + self.check_topology(3, 1, 0, 0, 'high', False)
>>>>> +
>>>>> + self.guest_set_dispatching('1');
>>>>> +
>>>>> + self.check_topology(0, 0, 0, 0, 'low', False)
>>>>> + self.check_topology(1, 0, 0, 0, 'medium', False)
>>>>> + self.check_topology(2, 1, 0, 0, 'high', False)
>>>>> + self.check_topology(3, 1, 0, 0, 'high', False)
>>>>> +
>>>>> + self.guest_set_dispatching('0');
>>>>> +
>>>>> + self.check_topology(0, 0, 0, 0, 'low', False)
>>>>> + self.check_topology(1, 0, 0, 0, 'medium', False)
>>>>> + self.check_topology(2, 1, 0, 0, 'high', False)
>>>>> + self.check_topology(3, 1, 0, 0, 'high', False)
>>>> Sorry, I think I'm too blind to see it, but what has changed
>>>> after
>>>> the guest
>>>> changed the polarization?
>>> Nothing, the values are retained, they're just not active.
>>> The guest will see a horizontal polarization until it changes back
>>> to
>>> vertical.
>> But then the comment in front of it ("This test verifies that QEMU
>> *modifies* the polarization...") does not quite match, does it?
> Yeah, it tests that QEMU reports it's own state changed when using
> set-cpu-topology.
> I think it would be a good idea to get the guests view from the sysfs,
> also.
>
>> Thomas
>>
>>
Yes, I think you are right, I rewrite this to check the guest view of
the changes.
As you said the values are retained when not used by horizontal
polarization so it is a non sense to check from host view.
Thanks
Pierre
On Wed, 2023-07-19 at 16:08 +0200, Pierre Morel wrote:
>
> On 7/14/23 18:30, Nina Schoetterl-Glausch wrote:
> > On Wed, 2023-07-12 at 22:11 +0200, Thomas Huth wrote:
> > > On 12/07/2023 21.37, Nina Schoetterl-Glausch wrote:
> > > > On Wed, 2023-07-05 at 12:22 +0200, Thomas Huth wrote:
> > > > > On 30/06/2023 11.17, Pierre Morel wrote:
> > > > > > This test takes care to check the changes on different
> > > > > > entitlements
> > > > > > when the guest requests a polarization change.
> > > > > >
> > > > > > Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> > > > > > ---
> > > > > > tests/avocado/s390_topology.py | 47
> > > > > > ++++++++++++++++++++++++++++++++++
> > > > > > 1 file changed, 47 insertions(+)
> > > > > >
> > > > > > diff --git a/tests/avocado/s390_topology.py
> > > > > > b/tests/avocado/s390_topology.py
> > > > > > index 2cf731cb1d..4855e5d7e4 100644
> > > > > > --- a/tests/avocado/s390_topology.py
> > > > > > +++ b/tests/avocado/s390_topology.py
> > > > > > @@ -240,3 +240,50 @@ def test_polarisation(self):
> > > > > > res = self.vm.qmp('query-cpu-polarization')
> > > > > > self.assertEqual(res['return']['polarization'],
> > > > > > 'horizontal')
> > > > > > self.check_topology(0, 0, 0, 0, 'medium',
> > > > > > False)
> > > > > > +
> > > > > > + def test_entitlement(self):
> > > > > > + """
> > > > > > + This test verifies that QEMU modifies the
> > > > > > polarization
> > > > > > + after a guest request.
> > > > > ...
> > > > > > + self.check_topology(0, 0, 0, 0, 'low', False)
> > > > > > + self.check_topology(1, 0, 0, 0, 'medium', False)
> > > > > > + self.check_topology(2, 1, 0, 0, 'high', False)
> > > > > > + self.check_topology(3, 1, 0, 0, 'high', False)
> > > > > > +
> > > > > > + self.guest_set_dispatching('1');
> > > > > > +
> > > > > > + self.check_topology(0, 0, 0, 0, 'low', False)
> > > > > > + self.check_topology(1, 0, 0, 0, 'medium', False)
> > > > > > + self.check_topology(2, 1, 0, 0, 'high', False)
> > > > > > + self.check_topology(3, 1, 0, 0, 'high', False)
> > > > > > +
> > > > > > + self.guest_set_dispatching('0');
> > > > > > +
> > > > > > + self.check_topology(0, 0, 0, 0, 'low', False)
> > > > > > + self.check_topology(1, 0, 0, 0, 'medium', False)
> > > > > > + self.check_topology(2, 1, 0, 0, 'high', False)
> > > > > > + self.check_topology(3, 1, 0, 0, 'high', False)
> > > > > Sorry, I think I'm too blind to see it, but what has changed
> > > > > after
> > > > > the guest
> > > > > changed the polarization?
> > > > Nothing, the values are retained, they're just not active.
> > > > The guest will see a horizontal polarization until it changes
> > > > back
> > > > to
> > > > vertical.
> > > But then the comment in front of it ("This test verifies that
> > > QEMU
> > > *modifies* the polarization...") does not quite match, does it?
> > Yeah, it tests that QEMU reports it's own state changed when using
> > set-cpu-topology.
> > I think it would be a good idea to get the guests view from the
> > sysfs,
> > also.
> >
> > > Thomas
> > >
> > >
>
> Yes, I think you are right, I rewrite this to check the guest view of
> the changes.
>
> As you said the values are retained when not used by horizontal
> polarization so it is a non sense to check from host view.
I don't think it's bad to check the host view, you can do both.
>
> Thanks
>
> Pierre
>
On 7/19/23 16:13, Nina Schoetterl-Glausch wrote:
> On Wed, 2023-07-19 at 16:08 +0200, Pierre Morel wrote:
>> On 7/14/23 18:30, Nina Schoetterl-Glausch wrote:
>>> On Wed, 2023-07-12 at 22:11 +0200, Thomas Huth wrote:
>>>> On 12/07/2023 21.37, Nina Schoetterl-Glausch wrote:
>>>>> On Wed, 2023-07-05 at 12:22 +0200, Thomas Huth wrote:
>>>>>> On 30/06/2023 11.17, Pierre Morel wrote:
>>>>>>> This test takes care to check the changes on different
>>>>>>> entitlements
>>>>>>> when the guest requests a polarization change.
>>>>>>>
>>>>>>> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
>>>>>>> ---
>>>>>>> tests/avocado/s390_topology.py | 47
>>>>>>> ++++++++++++++++++++++++++++++++++
>>>>>>> 1 file changed, 47 insertions(+)
>>>>>>>
>>>>>>> diff --git a/tests/avocado/s390_topology.py
>>>>>>> b/tests/avocado/s390_topology.py
>>>>>>> index 2cf731cb1d..4855e5d7e4 100644
>>>>>>> --- a/tests/avocado/s390_topology.py
>>>>>>> +++ b/tests/avocado/s390_topology.py
>>>>>>> @@ -240,3 +240,50 @@ def test_polarisation(self):
>>>>>>> res = self.vm.qmp('query-cpu-polarization')
>>>>>>> self.assertEqual(res['return']['polarization'],
>>>>>>> 'horizontal')
>>>>>>> self.check_topology(0, 0, 0, 0, 'medium',
>>>>>>> False)
>>>>>>> +
>>>>>>> + def test_entitlement(self):
>>>>>>> + """
>>>>>>> + This test verifies that QEMU modifies the
>>>>>>> polarization
>>>>>>> + after a guest request.
>>>>>> ...
>>>>>>> + self.check_topology(0, 0, 0, 0, 'low', False)
>>>>>>> + self.check_topology(1, 0, 0, 0, 'medium', False)
>>>>>>> + self.check_topology(2, 1, 0, 0, 'high', False)
>>>>>>> + self.check_topology(3, 1, 0, 0, 'high', False)
>>>>>>> +
>>>>>>> + self.guest_set_dispatching('1');
>>>>>>> +
>>>>>>> + self.check_topology(0, 0, 0, 0, 'low', False)
>>>>>>> + self.check_topology(1, 0, 0, 0, 'medium', False)
>>>>>>> + self.check_topology(2, 1, 0, 0, 'high', False)
>>>>>>> + self.check_topology(3, 1, 0, 0, 'high', False)
>>>>>>> +
>>>>>>> + self.guest_set_dispatching('0');
>>>>>>> +
>>>>>>> + self.check_topology(0, 0, 0, 0, 'low', False)
>>>>>>> + self.check_topology(1, 0, 0, 0, 'medium', False)
>>>>>>> + self.check_topology(2, 1, 0, 0, 'high', False)
>>>>>>> + self.check_topology(3, 1, 0, 0, 'high', False)
>>>>>> Sorry, I think I'm too blind to see it, but what has changed
>>>>>> after
>>>>>> the guest
>>>>>> changed the polarization?
>>>>> Nothing, the values are retained, they're just not active.
>>>>> The guest will see a horizontal polarization until it changes
>>>>> back
>>>>> to
>>>>> vertical.
>>>> But then the comment in front of it ("This test verifies that
>>>> QEMU
>>>> *modifies* the polarization...") does not quite match, does it?
>>> Yeah, it tests that QEMU reports it's own state changed when using
>>> set-cpu-topology.
>>> I think it would be a good idea to get the guests view from the
>>> sysfs,
>>> also.
>>>
>>>> Thomas
>>>>
>>>>
>> Yes, I think you are right, I rewrite this to check the guest view of
>> the changes.
>>
>> As you said the values are retained when not used by horizontal
>> polarization so it is a non sense to check from host view.
> I don't think it's bad to check the host view, you can do both.
>
OK, then I do it.
Thanks,
Pierre
© 2016 - 2026 Red Hat, Inc.