[Bug 37104] Infinite revert loop

wine-bugs at winehq.org wine-bugs at winehq.org
Thu Mar 8 14:49:05 CST 2018


https://bugs.winehq.org/show_bug.cgi?id=37104

François Gouget <fgouget at codeweavers.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|NEW                         |RESOLVED

--- Comment #2 from François Gouget <fgouget at codeweavers.com> ---
This is fixed.
It may have already been fixed before the latest scheduler rewrite since, if I
am not mistaken, the TestBot has been running with $MaxRevertsWhileRunningVMs =
0 for quite some time.

In any case this definitely does not (and should not) happen with the new
scheduler.

commit 66723015efdc15538bbb8c01ea91543f68893627
Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Mon Feb 19 04:25:04 2018 +0100

    testbot: Make the job scheduler more extensible.

    - The new scheduler splits the work into smaller steps: assessing the
      current situation, starting tasks on idle VMs and building a list of
      needed VMs, reverting the VMs, powering off the remaining VMs,
      updating the activity records. Each part can be analyzed
      independently. It uses the $Sched structure to pass information
      between these functions.
    - Sometimes a VM that no Task needs must be powered off in order to be
      able to prepare a VM that is needed. The job of picking which VM to
      sacrifice is now delegated to _SacrificeVM().
    - The scheduler used to handle each VM host independently. As a result
      it was unable to prepare a VM for the 'next step' if that VM was on
      another VM host. The lack of a global picture also made many other
      extensions impossible. The new scheduler handles scheduling on all
      VM hosts at the same time, thus solving this issue.
    - This and other improvements mean the scheduler no longer needs to loop
      over the jobs and tasks multiple times.
    - In order to respect the per-VM-host limits the scheduler stores the
      host-related counters and limits in the $Sched->{hosts} table.
    - The scheduler also used to build multiple lists of VMs to revert
      depending on whether they were needed now, for the next step, or for
      future jobs. The new scheduler builds a single prioritised list of
      VMs to revert which can be handled in one go. It also keeps more
      information so it can better decide which VM to prepare next.
    - The scheduler can now also prepare VMs for the 'next step' earlier,
      thus making it more likely they will be ready in time.

    Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
    Signed-off-by: Alexandre Julliard <julliard at winehq.org>

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list