Message ID | 20230630091752.67190-17-pmorel@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | s390x: CPU Topology | expand |
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
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)
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(+)