Lines Matching defs:migrator
44 * Each group has a designated migrator CPU/group as long as a CPU/group is
50 * hierarchy up to the point where it is assigned the migrator role or if
51 * no CPU is active, it also checks the groups where no migrator is set
74 * If the CPU is the migrator of the group then it delegates that role to
75 * the next active CPU in the group or sets migrator to TMIGR_NONE when
80 * When the last CPU in the system goes idle, then it drops all migrator
101 * includes the per CPU locks in struct tmigr_cpu. For updating the migrator and
115 * The state information with the list of active children and migrator needs to
125 * migrator = GRP0:1
129 * migrator = CPU0 migrator = CPU2
141 * migrator = GRP0:1
145 * --> migrator = TMIGR_NONE migrator = CPU2
158 * migrator = GRP0:1
162 * --> migrator = CPU1 migrator = CPU2
174 * --> migrator = GRP0:1
178 * migrator = CPU1 migrator = CPU2
187 * --> migrator = GRP0:1
191 * migrator = CPU1 migrator = CPU2
221 * migrator = GRP0:1
226 * migrator = TMIGR_NONE migrator = CPU2
237 * migrator = GRP0:1
242 * migrator = TMIGR_NONE --> migrator = TMIGR_NONE
255 * --> migrator = TMIGR_NONE
260 * migrator = TMIGR_NONE migrator = TMIGR_NONE
271 * migrator = TMIGR_NONE
276 * migrator = TMIGR_NONE migrator = TMIGR_NONE
290 * migrator = TMIGR_NONE
295 * migrator = TMIGR_NONE migrator = TMIGR_NONE
343 * thus also the migrator:
346 * migrator = GRP0:1
351 * migrator = TMIGR_NONE migrator = CPU2
368 * migrator = GRP0:1
373 * migrator = TMIGR_NONE migrator = CPU2
396 * migrator = GRP0:1
401 * migrator = TMIGR_NONE migrator = CPU2
410 * Now CPU2 (migrator) will continue step 2 at GRP1:0 and will expire the
413 * The hierarchy walk in step 3 can be skipped if the migrator notices that a
415 * of the group as migrator and any needed updates within the hierarchy.
459 * unavailable to avoid having no global migrator for the nohz_full CPUs. This
473 * Returns true, when @childmask corresponds to the group migrator or when the
474 * group is not active - so no migrator is set.
482 if ((s.migrator == childmask) || (s.migrator == TMIGR_NONE))
490 bool lonely, migrator = false;
496 if ((s.migrator == childmask) || (s.migrator == TMIGR_NONE))
497 migrator = true;
502 return (migrator && lonely);
679 if (newstate.migrator == TMIGR_NONE) {
680 newstate.migrator = childmask;
696 * migrator of this group. Therefore the ignore flag for the group event
700 * worst case the migrator of the parent group observes the change too
872 if (!group->parent && (groupstate.migrator == TMIGR_NONE)) {
964 * idle. Otherwise the migrator does it as the event is enqueued.
1060 * Handle the group only if @childmask is the migrator or if the
1061 * group has no migrator. Otherwise the group is active and is
1062 * handled by its own migrator.
1111 * NOTE: This is a doubled check because the migrator test will be done
1117 * If this CPU was an idle migrator, make sure to clear its wakeup
1151 * Handle the group only if the child is the migrator or if the group
1152 * has no migrator. Otherwise the group is active and is handled by its
1153 * own migrator.
1305 if (newstate.migrator == childmask) {
1307 * Find a new migrator for the group, because the child
1316 newstate.migrator = BIT(new_migr_bit);
1318 newstate.migrator = TMIGR_NONE;
1328 WARN_ON_ONCE((newstate.migrator != TMIGR_NONE) && !(newstate.active));
1378 * from the hierarchy if this CPU is the top level migrator or the hierarchy is
1460 * the other CPU is active and takes over the migrator duty.
1475 * and never idle migrator to handle all their global timers. That duty
1502 int migrator;
1528 migrator = cpumask_any_and(tmigr_available_cpumask, hier->cpumask);
1529 if (migrator < nr_cpu_ids) {
1530 work_on_cpu(migrator, tmigr_trigger_active, NULL);
1688 s.migrator = TMIGR_NONE;