Dave Hansen <[email protected]> writes:

> On 6/30/20 1:22 AM, Huang, Ying wrote:
>>> +   /*
>>> +    * To avoid cycles in the migration "graph", ensure
>>> +    * that migration sources are not future targets by
>>> +    * setting them in 'used_targets'.
>>> +    *
>>> +    * But, do this only once per pass so that multiple
>>> +    * source nodes can share a target node.
>> establish_migrate_target() calls find_next_best_node(), which will set
>> target_node in used_targets.  So it seems that the nodes_or() below is
>> only necessary to initialize used_targets, and multiple source nodes
>> cannot share one target node in current implementation.
>
> Yes, that is true.  My focus on this implementation was simplicity and
> sanity for common configurations.  I can certainly imagine scenarios
> where this is suboptimal.
>
> I'm totally open to other ways of doing this.

OK.  So when we really need to share one target node for multiple source
nodes, we can add a parameter to find_next_best_node() to specify
whether set target_node in used_targets.

Best Regards,
Huang, Ying

Reply via email to