Lines Matching defs:pd
249 static void free_pd(struct perf_domain *pd)
253 while (pd) {
254 tmp = pd->next;
255 kfree(pd);
256 pd = tmp;
260 static struct perf_domain *find_pd(struct perf_domain *pd, int cpu)
262 while (pd) {
263 if (cpumask_test_cpu(cpu, perf_domain_span(pd))) {
264 return pd;
266 pd = pd->next;
275 struct perf_domain *pd;
284 pd = kzalloc(sizeof(*pd), GFP_KERNEL);
285 if (!pd) {
288 pd->em_pd = obj;
290 return pd;
293 static void perf_domain_debug(const struct cpumask *cpu_map, struct perf_domain *pd)
295 if (!sched_debug() || !pd) {
301 while (pd) {
302 printk(KERN_CONT " pd%d:{ cpus=%*pbl nr_pstate=%d }", cpumask_first(perf_domain_span(pd)),
303 cpumask_pr_args(perf_domain_span(pd)), em_pd_nr_perf_states(pd->em_pd));
304 pd = pd->next;
312 struct perf_domain *pd;
314 pd = container_of(rp, struct perf_domain, rcu);
315 free_pd(pd);
362 struct perf_domain *pd = NULL, *tmp;
389 if (find_pd(pd, i)) {
401 if (rd->pd) {
407 /* Create the new pd and add it to the local list. */
412 tmp->next = pd;
413 pd = tmp;
420 nr_ps += em_pd_nr_perf_states(pd->em_pd);
429 perf_domain_debug(cpu_map, pd);
432 tmp = rd->pd;
433 rcu_assign_pointer(rd->pd, pd);
438 return !!pd;
441 free_pd(pd);
442 tmp = rd->pd;
443 rcu_assign_pointer(rd->pd, NULL);
451 static void free_pd(struct perf_domain *pd)
466 free_pd(rd->pd);
2443 if (cpumask_equal(doms_new[i], doms_cur[j]) && cpu_rq(cpumask_first(doms_cur[j]))->rd->pd) {