action #5830

Get rid of wait_idle to improve performance on !qemu

Added by coolo almost 4 years ago. Updated over 1 year ago.

Status:ResolvedStart date:11/01/2015
Priority:NormalDue date:
Assignee:okurz% Done:

0%

Category:Backend
Target version:-
Difficulty:
Duration:

Description

We need to research if the IPMI sensors give us good enough informations on how busy the machine is - otherwise a sleep needs to be enough. But even that requires refactoring as the wait_idle is not implemented in the backend - I think it should.


Related issues

Related to openQA Tests - action #21048: [qam] test fails in tracker_search_in_nautilus - keyboard... Resolved 03/08/2017
Duplicated by openQA Project - action #14410: Implement performance monitoring to svirt backend's wait_... Rejected 25/10/2016

History

#1 Updated by RBrownSUSE almost 3 years ago

  • Priority changed from Normal to High
  • Target version set to Milestone 1

#2 Updated by coolo almost 3 years ago

wait_idle is in the backend now - did that during hackweek

#3 Updated by coolo almost 3 years ago

http://blog.famzah.net/2012/02/08/power-consumption-of-a-server-with-an-intel-e3-1200-series-cpu/ - so the hardware responds to load changes. The question is if it reacts faster than in 19s ;)

#4 Updated by coolo almost 3 years ago

in the light of all the other backends not supporting wait_idle, the agreement is to get rid of our dependency on wait_idle - and don't even try implementing it for IPMI

#5 Updated by coolo almost 3 years ago

Trying to get rid of wait_idle dependency - step by step as it's really deep in our core by now ;(

https://github.com/os-autoinst/os-autoinst/pull/401
https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/962

#6 Updated by coolo almost 3 years ago

  • Subject changed from IPMI: wait_idle to Get rid of wait_idle to improve performance on !qemu
  • Assignee set to coolo

#7 Updated by coolo almost 3 years ago

  • Priority changed from High to Normal

There are some tests left to be fixed:

    testapi::wait_idle() called at /var/lib/openqa/share/tests/sle/tests/installation/welcome.pm line 28

Debug: /var/lib/openqa/share/tests/sle/tests/installation/welcome.pm:28 called testapi::wait_idle
testapi::wait_idle(10) called at /var/lib/openqa/share/tests/sle/tests/installation/installation_overview.pm line 27
Debug: /var/lib/openqa/share/tests/sle/tests/installation/installation_overview.pm:27 called testapi::wait_idle
testapi::wait_idle() called at /var/lib/openqa/share/tests/sle/tests/installation/first_boot.pm line 41
Debug: /var/lib/openqa/share/tests/sle/tests/installation/first_boot.pm:41 called testapi::wait_idle
testapi::wait_idle() called at /var/lib/openqa/share/tests/sle/tests/console/consoletest_finish.pm line 84
Debug: /var/lib/openqa/share/tests/sle/tests/console/consoletest_finish.pm:84 called testapi::wait_idle
testapi::wait_idle(5) called at /var/lib/openqa/share/tests/sle/lib/susedistribution.pm line 90
testapi::wait_idle(5) called at /var/lib/openqa/share/tests/sle/lib/susedistribution.pm line 90
testapi::wait_idle(5) called at /var/lib/openqa/share/tests/sle/lib/susedistribution.pm line 90
testapi::wait_idle(5) called at /var/lib/openqa/share/tests/sle/lib/susedistribution.pm line 90
testapi::wait_idle(5) called at /var/lib/openqa/share/tests/sle/lib/susedistribution.pm line 90
testapi::wait_idle(5) called at /var/lib/openqa/share/tests/sle/lib/susedistribution.pm line 90
testapi::wait_idle(5) called at /var/lib/openqa/share/tests/sle/lib/susedistribution.pm line 90
testapi::wait_idle(5) called at /var/lib/openqa/share/tests/sle/lib/susedistribution.pm line 90
testapi::wait_idle() called at /var/lib/openqa/share/tests/sle/tests/x11/reboot_gnome.pm line 16
Debug: /var/lib/openqa/share/tests/sle/tests/x11/reboot_gnome.pm:16 called testapi::wait_idle
testapi::wait_idle() called at /var/lib/openqa/share/tests/sle/lib/utils.pm line 67
testapi::wait_idle() called at /var/lib/openqa/share/tests/sle/lib/utils.pm line 83
testapi::wait_idle() called at /var/lib/openqa/share/tests/sle/tests/x11/desktop_mainmenu.pm line 17
Debug: /var/lib/openqa/share/tests/sle/tests/x11/desktop_mainmenu.pm:17 called testapi::wait_idle

#8 Updated by coolo almost 3 years ago

  • Assignee deleted (coolo)
  • Target version deleted (Milestone 1)

We reached an acceptable state IMO. It needs to be split into tests tasks, but somehow I don't feel it's worth it.

#10 Updated by okurz over 1 year ago

  • Duplicated by action #14410: Implement performance monitoring to svirt backend's wait_idle() added

#11 Updated by okurz over 1 year ago

  • Status changed from New to In Progress
  • Assignee set to okurz

So what I am doing is that during PR review of test code I remind people to not add wait_idle calls and ask if they can replace it anytime they touch code that has a wait_idle. I guess slowly we are getting there. Automatic static code checks that prevent addition of new wait_idle calls would be nice or we just try to get rid of all wait_idle calls at once the hard way, e.g. not verify everything, stuff will fail in production and we fix it then.

#13 Updated by okurz over 1 year ago

PR merged, let's see what happens now :-)

#14 Updated by okurz over 1 year ago

found it: https://openqa.opensuse.org/tests/459912#step/addon_products/4 does not yet show the added maintenance update repo, key 'alt-n' is pressed, the key press is ignored, the repo appears, this is detected as screen change, test fails

#15 Updated by pcervinka over 1 year ago

  • Related to action #21048: [qam] test fails in tracker_search_in_nautilus - keyboard press is not reaching target added

#16 Updated by okurz over 1 year ago

  • Status changed from In Progress to Feedback

Some more fixes with https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/3385 , merged. Let's see for some time now.

#17 Updated by okurz over 1 year ago

  • Status changed from Feedback to Resolved

#18 Updated by okurz over 1 year ago

  • Status changed from Resolved to In Progress

of course we also need to delete wait_idle from the backend then

https://github.com/os-autoinst/os-autoinst/pull/838

#19 Updated by okurz over 1 year ago

  • Status changed from In Progress to Resolved

PR was discussed and changed to not remove wait_idle but replace it by an explicit "sleep" instead and mark it properly as deprecated. That should suffice and in some years we might want to delete it then.

Also available in: Atom PDF