That has the expected result when number of forks == number of hosts but if forks is less than hosts then this takes much longer than expected. However, if number of forks is less than this, the process takes much longer even though no changes are actually happening (as the tasks being skipped occupy available forks).
This appears to be due to https:/ /opendev. org/openstack/ kolla-ansible/ commit/ 391aa4677f394f1 581df17fe74da96 8f19981e9d . As this loops through every host, there are hosts*hosts number of tasks to be run with a delay of neutron_ l3_agent_ failover_ delay between each.
That has the expected result when number of forks == number of hosts but if forks is less than hosts then this takes much longer than expected. However, if number of forks is less than this, the process takes much longer even though no changes are actually happening (as the tasks being skipped occupy available forks).