What is the difference between push migration and pull migration in run queue load balancing?

StackOverflow https://stackoverflow.com/questions/23428994

  •  14-07-2023
  •  | 
  •  

Question

I'm now researching CFS scheduler code in the Linux kernel for studying. In my class, I heard that there are two kinds of load balancing in both case CFS and O(1) scheduler. One is Push migration and the other is pull migration.(check this. this is not my class sites, but who may want some explanation..)

However, I cannot find any reason to call differently. Because function load_balance() only do some balancing stuff in the situation when the cpu which executing balancing is most free, so, always balance code will 'pull' tasks from another cpu's tasks.

why they made such terms like push & pull? I think that push migration should mean that yield my tasks to another cpu. Any ideas or evidence of this?

Thanks.

Était-ce utile?

La solution

To understand the answer of this just think in generalized way.

Push Migration is nothing but something force you to leave the place and

PULL migration is nothing but something attracts you to go that place

so in terms of memory processing, OS checks and validates the numbers of process in a queue. If the number of processes will be more then to balance the load some processes will be moved to another similarly if Scheduler finds there is no process in run queue so it raids another processor’s run queue and transfers a process onto its own queue so it will have something to run.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top