topology.c (0cce0fde499a92c726cd2e24f7763644f7c9f971) topology.c (cab3ecaed5cdcc9c36a96874b4c45056a46ece45)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Scheduler topology setup/handling methods
4 */
5
6#include <linux/bsearch.h>
7
8DEFINE_MUTEX(sched_domains_mutex);

--- 473 unchanged lines hidden (view full) ---

482 free_cpumask_var(rd->span);
483 free_pd(rd->pd);
484 kfree(rd);
485}
486
487void rq_attach_root(struct rq *rq, struct root_domain *rd)
488{
489 struct root_domain *old_rd = NULL;
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Scheduler topology setup/handling methods
4 */
5
6#include <linux/bsearch.h>
7
8DEFINE_MUTEX(sched_domains_mutex);

--- 473 unchanged lines hidden (view full) ---

482 free_cpumask_var(rd->span);
483 free_pd(rd->pd);
484 kfree(rd);
485}
486
487void rq_attach_root(struct rq *rq, struct root_domain *rd)
488{
489 struct root_domain *old_rd = NULL;
490 unsigned long flags;
490 struct rq_flags rf;
491
491
492 raw_spin_rq_lock_irqsave(rq, flags);
492 rq_lock_irqsave(rq, &rf);
493
494 if (rq->rd) {
495 old_rd = rq->rd;
496
497 if (cpumask_test_cpu(rq->cpu, old_rd->online))
498 set_rq_offline(rq);
499
500 cpumask_clear_cpu(rq->cpu, old_rd->span);

--- 9 unchanged lines hidden (view full) ---

510
511 atomic_inc(&rd->refcount);
512 rq->rd = rd;
513
514 cpumask_set_cpu(rq->cpu, rd->span);
515 if (cpumask_test_cpu(rq->cpu, cpu_active_mask))
516 set_rq_online(rq);
517
493
494 if (rq->rd) {
495 old_rd = rq->rd;
496
497 if (cpumask_test_cpu(rq->cpu, old_rd->online))
498 set_rq_offline(rq);
499
500 cpumask_clear_cpu(rq->cpu, old_rd->span);

--- 9 unchanged lines hidden (view full) ---

510
511 atomic_inc(&rd->refcount);
512 rq->rd = rd;
513
514 cpumask_set_cpu(rq->cpu, rd->span);
515 if (cpumask_test_cpu(rq->cpu, cpu_active_mask))
516 set_rq_online(rq);
517
518 raw_spin_rq_unlock_irqrestore(rq, flags);
518 rq_unlock_irqrestore(rq, &rf);
519
520 if (old_rd)
521 call_rcu(&old_rd->rcu, free_rootdomain);
522}
523
524void sched_get_rd(struct root_domain *rd)
525{
526 atomic_inc(&rd->refcount);

--- 2221 unchanged lines hidden ---
519
520 if (old_rd)
521 call_rcu(&old_rd->rcu, free_rootdomain);
522}
523
524void sched_get_rd(struct root_domain *rd)
525{
526 atomic_inc(&rd->refcount);

--- 2221 unchanged lines hidden ---