Lines Matching refs:cp

107 	cpupart_t *cp;
119 cp = cp_list_head;
121 if (cp->cp_id == cpid)
122 return (cp);
123 cp = cp->cp_next;
124 } while (cp != cp_list_head);
135 cpupart_t *cp;
138 cp = cpupart_find_all(psid);
139 if (cp != NULL && !INGLOBALZONE(curproc) && pool_pset_enabled() &&
140 zone_pset_get(curproc->p_zone) != CPTOPS(cp->cp_id))
142 return (cp);
148 cpupart_t *cp = (cpupart_t *)ksp->ks_private;
154 cpksp->cpk_updates.value.ui64 = cp->cp_updates;
155 cpksp->cpk_runnable.value.ui64 = cp->cp_nrunnable_cum;
156 cpksp->cpk_waiting.value.ui64 = cp->cp_nwaiting_cum;
157 cpksp->cpk_ncpus.value.ui32 = cp->cp_ncpus;
158 cpksp->cpk_avenrun_1min.value.ui32 = cp->cp_hp_avenrun[0] >>
160 cpksp->cpk_avenrun_5min.value.ui32 = cp->cp_hp_avenrun[1] >>
162 cpksp->cpk_avenrun_15min.value.ui32 = cp->cp_hp_avenrun[2] >>
168 cpupart_kstat_create(cpupart_t *cp)
181 if (cp != &cp_default && pool_pset_enabled())
185 ksp = kstat_create_zone("unix", cp->cp_id, "pset", "misc",
207 ksp->ks_private = cp;
211 cp->cp_kstat = ksp;
218 cpupart_lpl_initialize(cpupart_t *cp)
222 sz = cp->cp_nlgrploads = lgrp_plat_max_lgrps();
223 cp->cp_lgrploads = kmem_zalloc(sizeof (lpl_t) * sz, KM_SLEEP);
231 cp->cp_lgrploads[i].lpl_rset_sz = sz + 1;
232 cp->cp_lgrploads[i].lpl_rset =
234 cp->cp_lgrploads[i].lpl_id2rset =
236 cp->cp_lgrploads[i].lpl_lgrpid = i;
244 cpupart_lpl_teardown(cpupart_t *cp)
249 for (i = 0; i < cp->cp_nlgrploads; i++) {
250 lpl = &cp->cp_lgrploads[i];
258 kmem_free(cp->cp_lgrploads, sizeof (lpl_t) * cp->cp_nlgrploads);
259 cp->cp_lgrploads = NULL;
320 cpupart_move_cpu(cpu_t *cp, cpupart_t *newpp, int forced)
336 oldpp = cp->cpu_part;
347 cpu_state_change_notify(cp->cpu_id, CPU_CPUPART_OUT);
349 if (!disp_bound_partition(cp, 0)) {
370 if (!disp_bound_partition(cp, 0)) {
379 cpu_state_change_notify(cp->cpu_id, CPU_CPUPART_IN);
388 if ((ret = cpu_unbind(cp->cpu_id, unbind_all_threads)) != 0) {
389 cpu_state_change_notify(cp->cpu_id, CPU_CPUPART_IN);
396 cpu_inmotion = cp;
405 pg_cpupart_out(cp, oldpp);
406 pg_cpupart_in(cp, newpp);
414 for (loop_count = 0; disp_bound_threads(cp, 0); loop_count++) {
416 cpu_state_change_notify(cp->cpu_id,
418 pg_cpupart_out(cp, newpp);
419 pg_cpupart_in(cp, oldpp);
432 if (!cyclic_move_out(cp)) {
437 cpu_state_change_notify(cp->cpu_id, CPU_CPUPART_IN);
438 pg_cpupart_out(cp, newpp);
439 pg_cpupart_in(cp, oldpp);
444 pause_cpus(cp, NULL);
452 if (disp_bound_threads(cp, 1)) {
463 pg_cpupart_move(cp, oldpp, newpp);
466 lgrpid = cp->cpu_lpl->lpl_lgrpid;
468 cpu_lpl = cp->cpu_lpl;
470 * let the lgroup framework know cp has left the partition
472 lgrp_config(LGRP_CONFIG_CPUPART_DEL, (uintptr_t)cp, lgrpid);
478 ncp = cp->cpu_prev_part->cpu_next_part = cp->cpu_next_part;
479 cp->cpu_next_part->cpu_prev_part = cp->cpu_prev_part;
480 if (oldpp->cp_cpulist == cp) {
493 newpp->cp_cpulist = cp->cpu_next_part = cp->cpu_prev_part = cp;
497 cp->cpu_next_part = newlist;
498 cp->cpu_prev_part = newlist->cpu_prev_part;
499 newlist->cpu_prev_part->cpu_next_part = cp;
500 newlist->cpu_prev_part = cp;
502 cp->cpu_part = newpp;
510 * let the lgroup framework know cp has entered the partition
512 lgrp_config(LGRP_CONFIG_CPUPART_ADD, (uintptr_t)cp, lgrpid);
570 if (t->t_cpu == cp && t->t_cpupart == oldpp &&
571 t->t_bound_cpu != cp) {
623 if (t->t_cpu == cp && t->t_cpupart == oldpp &&
624 t->t_bound_cpu != cp) {
636 disp_cpu_inactive(cp);
639 * Make cp switch to a thread from the new partition.
641 cp->cpu_runrun = 1;
642 cp->cpu_kprunrun = 1;
651 cpu_state_change_notify(cp->cpu_id, CPU_CPUPART_IN);
657 cyclic_move_in(cp);
667 cpupart_movable_thread(kthread_id_t tp, cpupart_t *cp, int ignore)
671 ASSERT(cp != NULL);
680 if (boundcpu != NULL && boundcpu->cpu_part != cp)
955 cpu_t *cp, *first_cp;
978 while ((cp = pp->cp_cpulist) != NULL) {
979 if (err = cpupart_move_cpu(cp, newpp, 0)) {
1000 first_cp = cp = CPU;
1002 if (cp->cpu_part == pp) {
1003 ASSERT(cp->cpu_flags & CPU_OFFLINE);
1004 cp->cpu_part = newpp;
1006 cp = cp->cpu_next;
1007 } while (cp != first_cp);
1044 cpupart_query_cpu(cpu_t *cp)
1048 return (CPTOPS(cp->cpu_part->cp_id));
1056 cpupart_attach_cpu(psetid_t psid, cpu_t *cp, int forced)
1067 if (cp->cpu_flags & CPU_OFFLINE)
1070 err = cpupart_move_cpu(cp, pp, forced);
1145 cpupart_t *cp;
1152 cp = cpupart_find(psid);
1153 if (cp == NULL)
1156 buf[i] = cp->cp_hp_avenrun[i] >> (16 - FSHIFT);
1166 cpupart_t *cp;
1172 cp = cp_list_head;
1174 if (((flag == CP_ALL) && (cp != &cp_default)) ||
1175 ((flag == CP_NONEMPTY) && (cp->cp_ncpus != 0))) {
1178 list[numpart++] = CPTOPS(cp->cp_id);
1180 cp = cp->cp_next;
1181 } while (cp != cp_list_head);
1197 cpupart_t *cp;
1202 if ((cp = cpupart_find(psid)) == NULL) {
1209 if (cp == &cp_default && !(attr & PSET_NOESCAPE)) {
1213 cp->cp_attr = attr;
1221 cpupart_t *cp;
1224 if ((cp = cpupart_find(psid)) == NULL) {
1228 *attrp = cp->cp_attr;