Lines Matching full:cp

77 extern char *cpu_fru_fmri(cpu_t *cp);
80 static void cpu_add_active_internal(cpu_t *cp);
81 static void cpu_remove_active(cpu_t *cp);
82 static void cpu_info_kstat_create(cpu_t *cp);
83 static void cpu_info_kstat_destroy(cpu_t *cp);
84 static void cpu_stats_kstat_create(cpu_t *cp);
85 static void cpu_stats_kstat_destroy(cpu_t *cp);
400 cpu_t *cp; in thread_affinity_set() local
417 cp = cpu[cpu_id]; in thread_affinity_set()
418 ASSERT(cp != NULL); /* user must provide a good cpu_id */ in thread_affinity_set()
424 if (t->t_affinitycnt > 0 && t->t_bound_cpu != cp) { in thread_affinity_set()
426 (void *)cp, (void *)t->t_bound_cpu); in thread_affinity_set()
429 t->t_bound_cpu = cp; in thread_affinity_set()
434 if (cp != t->t_cpu || t != curthread) { in thread_affinity_set()
531 cpu_t *cp; in thread_nomigrate() local
536 cp = CPU; in thread_nomigrate()
548 if (CPU_ON_INTR(cp) || t->t_flag & T_INTR_THREAD || in thread_nomigrate()
562 if (t->t_nomigrate && t->t_weakbound_cpu && t->t_weakbound_cpu != cp) { in thread_nomigrate()
565 "bound to %p", (void *)cp, in thread_nomigrate()
632 if (cp != cpu_inmotion || t->t_nomigrate > 0 || t->t_preempt > 1 || in thread_nomigrate()
633 t->t_bound_cpu == cp) { in thread_nomigrate()
643 t->t_weakbound_cpu = cp; in thread_nomigrate()
667 cp->cpu_kprunrun = 1; in thread_nomigrate()
843 cpu_pause_alloc(cpu_t *cp) in cpu_pause_alloc() argument
846 long cpun = cp->cpu_id; in cpu_pause_alloc()
855 t->t_bound_cpu = cp; in cpu_pause_alloc()
856 t->t_disp_queue = cp->cpu_disp; in cpu_pause_alloc()
860 cp->cpu_pause_thread = t; in cpu_pause_alloc()
875 cpu_pause_free(cpu_t *cp) in cpu_pause_free() argument
878 int cpun = cp->cpu_id; in cpu_pause_free()
884 if ((t = cp->cpu_pause_thread) == NULL) { in cpu_pause_free()
909 cp->cpu_pause_thread = NULL; in cpu_pause_free()
935 cpu_t *cp; in cpu_pause_start() local
938 cp = cpu[i]; in cpu_pause_start()
947 if ((cp->cpu_flags & (CPU_QUIESCED | CPU_READY)) != CPU_READY) { in cpu_pause_start()
955 t = cp->cpu_pause_thread; in cpu_pause_start()
1189 cpu_online(cpu_t *cp) in cpu_online() argument
1207 error = mp_cpu_start(cp); /* arch-dep hook */ in cpu_online()
1209 pg_cpupart_in(cp, cp->cpu_part); in cpu_online()
1211 cpu_add_active_internal(cp); in cpu_online()
1212 if (cp->cpu_flags & CPU_FAULTED) { in cpu_online()
1213 cp->cpu_flags &= ~CPU_FAULTED; in cpu_online()
1214 mp_cpu_faulted_exit(cp); in cpu_online()
1216 cp->cpu_flags &= ~(CPU_QUIESCED | CPU_OFFLINE | CPU_FROZEN | in cpu_online()
1218 CPU_NEW_GENERATION(cp); in cpu_online()
1220 cpu_stats_kstat_create(cp); in cpu_online()
1221 cpu_create_intrstat(cp); in cpu_online()
1222 lgrp_kstat_create(cp); in cpu_online()
1223 cpu_state_change_notify(cp->cpu_id, CPU_ON); in cpu_online()
1224 cpu_intr_enable(cp); /* arch-dep hook */ in cpu_online()
1225 cpu_state_change_notify(cp->cpu_id, CPU_INTR_ON); in cpu_online()
1226 cpu_set_state(cp); in cpu_online()
1227 cyclic_online(cp); in cpu_online()
1232 callout_cpu_online(cp); in cpu_online()
1233 poke_cpu(cp->cpu_id); in cpu_online()
1243 cpu_offline(cpu_t *cp, int flags) in cpu_offline() argument
1266 if (cp->cpu_flags & (CPU_FAULTED | CPU_SPARE)) { in cpu_offline()
1267 if (cp->cpu_flags & CPU_FAULTED) { in cpu_offline()
1268 cp->cpu_flags &= ~CPU_FAULTED; in cpu_offline()
1269 mp_cpu_faulted_exit(cp); in cpu_offline()
1271 cp->cpu_flags &= ~CPU_SPARE; in cpu_offline()
1272 cpu_set_state(cp); in cpu_offline()
1279 pp = cp->cpu_part; in cpu_offline()
1283 if (ncpus_online <= 1 || pp->cp_ncpus <= 1 || cpu_intr_count(cp) < 2) in cpu_offline()
1289 error = cpu_unbind(cp->cpu_id, unbind_all_threads); in cpu_offline()
1295 if (curthread->t_bound_cpu == cp) in cpu_offline()
1301 CPU_NEW_GENERATION(cp); in cpu_offline()
1302 cpu_state_change_notify(cp->cpu_id, CPU_OFF); in cpu_offline()
1307 pg_cpupart_out(cp, pp); in cpu_offline()
1317 intr_enable = cp->cpu_flags & CPU_ENABLE; in cpu_offline()
1319 no_quiesce = cpu_intr_disable(cp); in cpu_offline()
1334 cpu_inmotion = cp; in cpu_offline()
1353 again: for (loop_count = 0; (*bound_func)(cp, 0); loop_count++) { in cpu_offline()
1378 callout_cpu_offline(cp); in cpu_offline()
1383 if (!cyclic_offline(cp)) { in cpu_offline()
1398 error = mp_cpu_stop(cp); /* arch-dep hook */ in cpu_offline()
1409 pause_cpus(cp, NULL); in cpu_offline()
1420 if ((!no_quiesce && cp->cpu_intr_actv != 0) || in cpu_offline()
1421 (*bound_func)(cp, 1)) { in cpu_offline()
1423 (void) mp_cpu_start(cp); in cpu_offline()
1426 ncp = cp->cpu_next_part; in cpu_offline()
1427 cpu_lpl = cp->cpu_lpl; in cpu_offline()
1433 cpu_remove_active(cp); in cpu_offline()
1441 ASSERT(curthread->t_cpu != cp); in cpu_offline()
1475 if (t->t_cpu == cp && t->t_bound_cpu != cp) in cpu_offline()
1478 ASSERT(t->t_cpu != cp || t->t_bound_cpu == cp || in cpu_offline()
1479 t->t_weakbound_cpu == cp); in cpu_offline()
1519 if (t->t_cpu == cp && t->t_bound_cpu != cp) { in cpu_offline()
1523 ASSERT(t->t_cpu != cp || t->t_bound_cpu == cp || in cpu_offline()
1524 t->t_weakbound_cpu == cp); in cpu_offline()
1528 ASSERT((cp->cpu_flags & (CPU_FAULTED | CPU_SPARE)) == 0); in cpu_offline()
1529 cp->cpu_flags |= CPU_OFFLINE; in cpu_offline()
1530 disp_cpu_inactive(cp); in cpu_offline()
1532 cp->cpu_flags |= CPU_QUIESCED; in cpu_offline()
1534 cpu_set_state(cp); in cpu_offline()
1537 cpu_stats_kstat_destroy(cp); in cpu_offline()
1538 cpu_delete_intrstat(cp); in cpu_offline()
1539 lgrp_kstat_destroy(cp); in cpu_offline()
1551 cpu_intr_enable(cp); in cpu_offline()
1558 cyclic_online(cp); in cpu_offline()
1565 callout_cpu_online(cp); in cpu_offline()
1570 pg_cpupart_in(cp, pp); in cpu_offline()
1576 CPU_NEW_GENERATION(cp); in cpu_offline()
1577 cpu_state_change_notify(cp->cpu_id, CPU_ON); in cpu_offline()
1578 cpu_state_change_notify(cp->cpu_id, CPU_INTR_ON); in cpu_offline()
1588 cpu_faulted(cpu_t *cp, int flags) in cpu_faulted() argument
1593 ASSERT(!cpu_is_poweredoff(cp)); in cpu_faulted()
1595 if (cpu_is_offline(cp)) { in cpu_faulted()
1596 cp->cpu_flags &= ~CPU_SPARE; in cpu_faulted()
1597 cp->cpu_flags |= CPU_FAULTED; in cpu_faulted()
1598 mp_cpu_faulted_enter(cp); in cpu_faulted()
1599 cpu_set_state(cp); in cpu_faulted()
1603 if ((error = cpu_offline(cp, flags)) == 0) { in cpu_faulted()
1604 cp->cpu_flags |= CPU_FAULTED; in cpu_faulted()
1605 mp_cpu_faulted_enter(cp); in cpu_faulted()
1606 cpu_set_state(cp); in cpu_faulted()
1616 cpu_spare(cpu_t *cp, int flags) in cpu_spare() argument
1621 ASSERT(!cpu_is_poweredoff(cp)); in cpu_spare()
1623 if (cpu_is_offline(cp)) { in cpu_spare()
1624 if (cp->cpu_flags & CPU_FAULTED) { in cpu_spare()
1625 cp->cpu_flags &= ~CPU_FAULTED; in cpu_spare()
1626 mp_cpu_faulted_exit(cp); in cpu_spare()
1628 cp->cpu_flags |= CPU_SPARE; in cpu_spare()
1629 cpu_set_state(cp); in cpu_spare()
1633 if ((error = cpu_offline(cp, flags)) == 0) { in cpu_spare()
1634 cp->cpu_flags |= CPU_SPARE; in cpu_spare()
1635 cpu_set_state(cp); in cpu_spare()
1645 cpu_poweron(cpu_t *cp) in cpu_poweron() argument
1650 ASSERT(cpu_is_poweredoff(cp)); in cpu_poweron()
1652 error = mp_cpu_poweron(cp); /* arch-dep hook */ in cpu_poweron()
1654 cpu_set_state(cp); in cpu_poweron()
1663 cpu_poweroff(cpu_t *cp) in cpu_poweroff() argument
1668 ASSERT(cpu_is_offline(cp)); in cpu_poweroff()
1670 if (!(cp->cpu_flags & CPU_QUIESCED)) in cpu_poweroff()
1673 error = mp_cpu_poweroff(cp); /* arch-dep hook */ in cpu_poweroff()
1675 cpu_set_state(cp); in cpu_poweroff()
1698 cpu_list_init(cpu_t *cp) in cpu_list_init() argument
1700 cp->cpu_next = cp; in cpu_list_init()
1701 cp->cpu_prev = cp; in cpu_list_init()
1702 cpu_list = cp; in cpu_list_init()
1703 clock_cpu_list = cp; in cpu_list_init()
1705 cp->cpu_next_onln = cp; in cpu_list_init()
1706 cp->cpu_prev_onln = cp; in cpu_list_init()
1707 cpu_active = cp; in cpu_list_init()
1709 cp->cpu_seqid = 0; in cpu_list_init()
1719 cp->cpu_cache_offset = KMEM_CPU_CACHE_OFFSET(cp->cpu_seqid); in cpu_list_init()
1720 cp_default.cp_cpulist = cp; in cpu_list_init()
1722 cp->cpu_next_part = cp; in cpu_list_init()
1723 cp->cpu_prev_part = cp; in cpu_list_init()
1724 cp->cpu_part = &cp_default; in cpu_list_init()
1726 CPUSET_ADD(cpu_available, cp->cpu_id); in cpu_list_init()
1733 cpu_add_unit(cpu_t *cp) in cpu_add_unit() argument
1740 lgrp_config(LGRP_CONFIG_CPU_ADD, (uintptr_t)cp, 0); in cpu_add_unit()
1761 cp->cpu_part = &cp_default; in cpu_add_unit()
1763 cp->cpu_next = cpu_list; in cpu_add_unit()
1764 cp->cpu_prev = cpu_list->cpu_prev; in cpu_add_unit()
1765 cpu_list->cpu_prev->cpu_next = cp; in cpu_add_unit()
1766 cpu_list->cpu_prev = cp; in cpu_add_unit()
1772 cp->cpu_seqid = seqid; in cpu_add_unit()
1779 cp->cpu_cache_offset = KMEM_CPU_CACHE_OFFSET(cp->cpu_seqid); in cpu_add_unit()
1780 cpu[cp->cpu_id] = cp; in cpu_add_unit()
1781 CPUSET_ADD(cpu_available, cp->cpu_id); in cpu_add_unit()
1782 cpu_seq[cp->cpu_seqid] = cp; in cpu_add_unit()
1787 cpu_pause_alloc(cp); in cpu_add_unit()
1795 cp->cpu_next_onln = cp; in cpu_add_unit()
1796 cp->cpu_prev_onln = cp; in cpu_add_unit()
1797 cpu_info_kstat_create(cp); in cpu_add_unit()
1798 cp->cpu_next_part = cp; in cpu_add_unit()
1799 cp->cpu_prev_part = cp; in cpu_add_unit()
1801 init_cpu_mstate(cp, CMS_SYSTEM); in cpu_add_unit()
1812 struct cpu *cp, *cpnext; in cpu_del_unit() local
1815 cp = cpu[cpuid]; in cpu_del_unit()
1816 ASSERT(cp != NULL); in cpu_del_unit()
1818 ASSERT(cp->cpu_next_onln == cp); in cpu_del_unit()
1819 ASSERT(cp->cpu_prev_onln == cp); in cpu_del_unit()
1820 ASSERT(cp->cpu_next_part == cp); in cpu_del_unit()
1821 ASSERT(cp->cpu_prev_part == cp); in cpu_del_unit()
1827 pg_cpu_fini(cp, NULL); in cpu_del_unit()
1828 pghw_physid_destroy(cp); in cpu_del_unit()
1833 cpu_info_kstat_destroy(cp); in cpu_del_unit()
1834 term_cpu_mstate(cp); in cpu_del_unit()
1838 cpu_pause_free(cp); in cpu_del_unit()
1839 CPUSET_DEL(cpu_available, cp->cpu_id); in cpu_del_unit()
1840 cpu[cp->cpu_id] = NULL; in cpu_del_unit()
1841 cpu_seq[cp->cpu_seqid] = NULL; in cpu_del_unit()
1850 * after any sleeps (check cp->cpu_next != NULL). We guarantee in cpu_del_unit()
1859 cpnext = cp->cpu_next; in cpu_del_unit()
1860 cp->cpu_prev->cpu_next = cp->cpu_next; in cpu_del_unit()
1861 cp->cpu_next->cpu_prev = cp->cpu_prev; in cpu_del_unit()
1862 if (cp == cpu_list) in cpu_del_unit()
1868 cp->cpu_next = NULL; in cpu_del_unit()
1869 cp->cpu_prev = NULL; in cpu_del_unit()
1873 CPUSET_DEL(cpu_seqid_inuse, cp->cpu_seqid); in cpu_del_unit()
1875 lgrp_config(LGRP_CONFIG_CPU_DEL, (uintptr_t)cp, 0); in cpu_del_unit()
1885 cpu_add_active_internal(cpu_t *cp) in cpu_add_active_internal() argument
1887 cpupart_t *pp = cp->cpu_part; in cpu_add_active_internal()
1893 cpu_set_state(cp); in cpu_add_active_internal()
1894 cp->cpu_next_onln = cpu_active; in cpu_add_active_internal()
1895 cp->cpu_prev_onln = cpu_active->cpu_prev_onln; in cpu_add_active_internal()
1896 cpu_active->cpu_prev_onln->cpu_next_onln = cp; in cpu_add_active_internal()
1897 cpu_active->cpu_prev_onln = cp; in cpu_add_active_internal()
1900 cp->cpu_next_part = pp->cp_cpulist; in cpu_add_active_internal()
1901 cp->cpu_prev_part = pp->cp_cpulist->cpu_prev_part; in cpu_add_active_internal()
1902 pp->cp_cpulist->cpu_prev_part->cpu_next_part = cp; in cpu_add_active_internal()
1903 pp->cp_cpulist->cpu_prev_part = cp; in cpu_add_active_internal()
1906 pp->cp_cpulist = cp->cpu_next_part = cp->cpu_prev_part = cp; in cpu_add_active_internal()
1914 pg_cpu_active(cp); in cpu_add_active_internal()
1915 lgrp_config(LGRP_CONFIG_CPU_ONLINE, (uintptr_t)cp, 0); in cpu_add_active_internal()
1917 bzero(&cp->cpu_loadavg, sizeof (cp->cpu_loadavg)); in cpu_add_active_internal()
1925 cpu_add_active(cpu_t *cp) in cpu_add_active() argument
1927 pg_cpupart_in(cp, cp->cpu_part); in cpu_add_active()
1930 cpu_add_active_internal(cp); in cpu_add_active()
1933 cpu_stats_kstat_create(cp); in cpu_add_active()
1934 cpu_create_intrstat(cp); in cpu_add_active()
1935 lgrp_kstat_create(cp); in cpu_add_active()
1936 cpu_state_change_notify(cp->cpu_id, CPU_INIT); in cpu_add_active()
1946 cpu_remove_active(cpu_t *cp) in cpu_remove_active() argument
1948 cpupart_t *pp = cp->cpu_part; in cpu_remove_active()
1951 ASSERT(cp->cpu_next_onln != cp); /* not the last one */ in cpu_remove_active()
1952 ASSERT(cp->cpu_prev_onln != cp); /* not the last one */ in cpu_remove_active()
1954 pg_cpu_inactive(cp); in cpu_remove_active()
1956 lgrp_config(LGRP_CONFIG_CPU_OFFLINE, (uintptr_t)cp, 0); in cpu_remove_active()
1958 if (cp == clock_cpu_list) in cpu_remove_active()
1959 clock_cpu_list = cp->cpu_next_onln; in cpu_remove_active()
1961 cp->cpu_prev_onln->cpu_next_onln = cp->cpu_next_onln; in cpu_remove_active()
1962 cp->cpu_next_onln->cpu_prev_onln = cp->cpu_prev_onln; in cpu_remove_active()
1963 if (cpu_active == cp) { in cpu_remove_active()
1964 cpu_active = cp->cpu_next_onln; in cpu_remove_active()
1966 cp->cpu_next_onln = cp; in cpu_remove_active()
1967 cp->cpu_prev_onln = cp; in cpu_remove_active()
1969 cp->cpu_prev_part->cpu_next_part = cp->cpu_next_part; in cpu_remove_active()
1970 cp->cpu_next_part->cpu_prev_part = cp->cpu_prev_part; in cpu_remove_active()
1971 if (pp->cp_cpulist == cp) { in cpu_remove_active()
1972 pp->cp_cpulist = cp->cpu_next_part; in cpu_remove_active()
1973 ASSERT(pp->cp_cpulist != cp); in cpu_remove_active()
1975 cp->cpu_next_part = cp; in cpu_remove_active()
1976 cp->cpu_prev_part = cp; in cpu_remove_active()
2234 cpu_t *cp = ksp->ks_private; in cpu_info_kstat_update() local
2242 if (cpuid_checkpass(cp, 1) == 0) in cpu_info_kstat_update()
2245 switch (cp->cpu_type_info.pi_state) { in cpu_info_kstat_update()
2268 cpu_info_template.ci_state_begin.value.l = cp->cpu_state_begin; in cpu_info_kstat_update()
2270 cp->cpu_type_info.pi_processor_type, 15); in cpu_info_kstat_update()
2272 cp->cpu_type_info.pi_fputypes, 15); in cpu_info_kstat_update()
2273 cpu_info_template.ci_clock_MHz.value.l = cp->cpu_type_info.pi_clock; in cpu_info_kstat_update()
2275 pg_plat_hw_instance_id(cp, PGHW_CHIP); in cpu_info_kstat_update()
2277 cp->cpu_idstr); in cpu_info_kstat_update()
2278 kstat_named_setstr(&cpu_info_template.ci_brandstr, cp->cpu_brandstr); in cpu_info_kstat_update()
2279 cpu_info_template.ci_core_id.value.l = pg_plat_get_core_id(cp); in cpu_info_kstat_update()
2281 cp->cpu_curr_clock; in cpu_info_kstat_update()
2283 cp->cpu_pg && cp->cpu_pg->cmt_lineage ? in cpu_info_kstat_update()
2284 cp->cpu_pg->cmt_lineage->pg_id : -1; in cpu_info_kstat_update()
2286 cp->cpu_supp_freqs); in cpu_info_kstat_update()
2289 cpunodes[cp->cpu_id].device_id; in cpu_info_kstat_update()
2290 kstat_named_setstr(&cpu_info_template.ci_cpu_fru, cpu_fru_fmri(cp)); in cpu_info_kstat_update()
2294 cpuid_getvendorstr(cp)); in cpu_info_kstat_update()
2295 cpu_info_template.ci_family.value.l = cpuid_getfamily(cp); in cpu_info_kstat_update()
2296 cpu_info_template.ci_model.value.l = cpuid_getmodel(cp); in cpu_info_kstat_update()
2297 cpu_info_template.ci_step.value.l = cpuid_getstep(cp); in cpu_info_kstat_update()
2298 cpu_info_template.ci_clogid.value.l = cpuid_get_clogid(cp); in cpu_info_kstat_update()
2299 cpu_info_template.ci_ncpuperchip.value.l = cpuid_get_ncpu_per_chip(cp); in cpu_info_kstat_update()
2301 cpuid_get_ncore_per_chip(cp); in cpu_info_kstat_update()
2302 cpu_info_template.ci_pkg_core_id.value.l = cpuid_get_pkgcoreid(cp); in cpu_info_kstat_update()
2303 cpu_info_template.ci_max_cstates.value.l = cp->cpu_m.max_cstates; in cpu_info_kstat_update()
2304 cpu_info_template.ci_curr_cstate.value.l = cpu_idle_get_cpu_state(cp); in cpu_info_kstat_update()
2305 cpu_info_template.ci_cacheid.value.i32 = cpuid_get_cacheid(cp); in cpu_info_kstat_update()
2307 cpuid_getsocketstr(cp)); in cpu_info_kstat_update()
2314 cpu_info_kstat_create(cpu_t *cp) in cpu_info_kstat_create() argument
2324 if ((cp->cpu_info_kstat = kstat_create_zone("cpu_info", cp->cpu_id, in cpu_info_kstat_create()
2328 cp->cpu_info_kstat->ks_data_size += 2 * CPU_IDSTRLEN; in cpu_info_kstat_create()
2330 cp->cpu_info_kstat->ks_data_size += in cpu_info_kstat_create()
2331 strlen(cpu_fru_fmri(cp)) + 1; in cpu_info_kstat_create()
2334 cp->cpu_info_kstat->ks_data_size += X86_VENDOR_STRLEN; in cpu_info_kstat_create()
2336 if (cp->cpu_supp_freqs != NULL) in cpu_info_kstat_create()
2337 cp->cpu_info_kstat->ks_data_size += in cpu_info_kstat_create()
2338 strlen(cp->cpu_supp_freqs) + 1; in cpu_info_kstat_create()
2339 cp->cpu_info_kstat->ks_lock = &cpu_info_template_lock; in cpu_info_kstat_create()
2340 cp->cpu_info_kstat->ks_data = &cpu_info_template; in cpu_info_kstat_create()
2341 cp->cpu_info_kstat->ks_private = cp; in cpu_info_kstat_create()
2342 cp->cpu_info_kstat->ks_update = cpu_info_kstat_update; in cpu_info_kstat_create()
2343 kstat_install(cp->cpu_info_kstat); in cpu_info_kstat_create()
2348 cpu_info_kstat_destroy(cpu_t *cp) in cpu_info_kstat_destroy() argument
2352 kstat_delete(cp->cpu_info_kstat); in cpu_info_kstat_destroy()
2353 cp->cpu_info_kstat = NULL; in cpu_info_kstat_destroy()
2360 cpu_kstat_init(cpu_t *cp) in cpu_kstat_init() argument
2363 cpu_info_kstat_create(cp); in cpu_kstat_init()
2364 cpu_stats_kstat_create(cp); in cpu_kstat_init()
2365 cpu_create_intrstat(cp); in cpu_kstat_init()
2366 cpu_set_state(cp); in cpu_kstat_init()
2375 cpu_visibility_configure(cpu_t *cp, zone_t *zone) in cpu_visibility_configure() argument
2381 ASSERT(cp != NULL); in cpu_visibility_configure()
2387 if (cp->cpu_info_kstat != NULL) in cpu_visibility_configure()
2388 kstat_zone_add(cp->cpu_info_kstat, zoneid); in cpu_visibility_configure()
2396 cpu_visibility_online(cpu_t *cp, zone_t *zone) in cpu_visibility_online() argument
2405 ASSERT(cp != NULL); in cpu_visibility_online()
2406 ASSERT(cpu_is_active(cp)); in cpu_visibility_online()
2408 cpun = cp->cpu_id; in cpu_visibility_online()
2439 cpu_visibility_add(cpu_t *cp, zone_t *zone) in cpu_visibility_add() argument
2441 cpu_visibility_configure(cp, zone); in cpu_visibility_add()
2442 if (cpu_is_active(cp)) in cpu_visibility_add()
2443 cpu_visibility_online(cp, zone); in cpu_visibility_add()
2451 cpu_visibility_unconfigure(cpu_t *cp, zone_t *zone) in cpu_visibility_unconfigure() argument
2457 ASSERT(cp != NULL); in cpu_visibility_unconfigure()
2463 if (cp->cpu_info_kstat) in cpu_visibility_unconfigure()
2464 kstat_zone_remove(cp->cpu_info_kstat, zoneid); in cpu_visibility_unconfigure()
2472 cpu_visibility_offline(cpu_t *cp, zone_t *zone) in cpu_visibility_offline() argument
2481 ASSERT(cp != NULL); in cpu_visibility_offline()
2482 ASSERT(cpu_is_active(cp)); in cpu_visibility_offline()
2484 cpun = cp->cpu_id; in cpu_visibility_offline()
2516 cpu_visibility_remove(cpu_t *cp, zone_t *zone) in cpu_visibility_remove() argument
2518 if (cpu_is_active(cp)) in cpu_visibility_remove()
2519 cpu_visibility_offline(cp, zone); in cpu_visibility_remove()
2520 cpu_visibility_unconfigure(cp, zone); in cpu_visibility_remove()
2531 cpu_t *cp = NULL; in cpu_bind_thread() local
2598 cp = cpu_get((processorid_t)binding); in cpu_bind_thread()
2602 if (cp == NULL || tp->t_cpupart != cp->cpu_part) { in cpu_bind_thread()
2638 tp->t_bound_cpu = cp; in cpu_bind_thread()
2639 ASSERT(cp->cpu_lpl != NULL); in cpu_bind_thread()
2650 lpl = cp->cpu_lpl; in cpu_bind_thread()
2688 ASSERT(tp->t_disp_queue == cp->cpu_disp || in cpu_bind_thread()
2883 cpu_destroy_bound_threads(cpu_t *cp) in cpu_destroy_bound_threads() argument
2907 if (t->t_bound_cpu == cp) { in cpu_destroy_bound_threads()
2954 cpu_set_supp_freqs(cpu_t *cp, const char *freqs) in cpu_set_supp_freqs() argument
2967 cp->cpu_curr_clock); in cpu_set_supp_freqs()
2976 if ((ksp = cp->cpu_info_kstat) != NULL) { in cpu_set_supp_freqs()
2985 if (cp->cpu_supp_freqs != NULL) { in cpu_set_supp_freqs()
2986 len = strlen(cp->cpu_supp_freqs) + 1; in cpu_set_supp_freqs()
2987 kmem_free(cp->cpu_supp_freqs, len); in cpu_set_supp_freqs()
2996 cp->cpu_supp_freqs = kmem_alloc(len, KM_SLEEP); in cpu_set_supp_freqs()
2997 (void) strcpy(cp->cpu_supp_freqs, lfreqs); in cpu_set_supp_freqs()
3113 cpu_stats_kstat_create(cpu_t *cp) in cpu_stats_kstat_create() argument
3115 int instance = cp->cpu_id; in cpu_stats_kstat_create()
3135 ksp->ks_private = cp; \ in cpu_stats_kstat_create()
3150 ksp = kstat_create_zone("cpu_stat", cp->cpu_id, NULL, in cpu_stats_kstat_create()
3154 ksp->ks_private = cp; in cpu_stats_kstat_create()
3160 cpu_stats_kstat_destroy(cpu_t *cp) in cpu_stats_kstat_destroy() argument
3164 (void) sprintf(ks_name, "cpu_stat%d", cp->cpu_id); in cpu_stats_kstat_destroy()
3165 kstat_delete_byname("cpu_stat", cp->cpu_id, ks_name); in cpu_stats_kstat_destroy()
3167 kstat_delete_byname("cpu", cp->cpu_id, "sys"); in cpu_stats_kstat_destroy()
3168 kstat_delete_byname("cpu", cp->cpu_id, "vm"); in cpu_stats_kstat_destroy()
3174 cpu_t *cp = (cpu_t *)ksp->ks_private; in cpu_sys_stats_ks_update() local
3184 css = &cp->cpu_stats.sys; in cpu_sys_stats_ks_update()
3192 get_cpu_mstate(cp, msnsecs); in cpu_sys_stats_ks_update()
3215 csskd->cpu_nsec_dtrace.value.ui64 = cp->cpu_dtrace_nsec; in cpu_sys_stats_ks_update()
3216 csskd->dtrace_probes.value.ui64 = cp->cpu_dtrace_probes; in cpu_sys_stats_ks_update()
3217 csskd->cpu_nsec_intr.value.ui64 = cp->cpu_intrlast; in cpu_sys_stats_ks_update()
3218 csskd->cpu_load_intr.value.ui64 = cp->cpu_intrload; in cpu_sys_stats_ks_update()
3276 cpu_t *cp = (cpu_t *)ksp->ks_private; in cpu_vm_stats_ks_update() local
3283 cvs = &cp->cpu_stats.vm; in cpu_vm_stats_ks_update()
3327 cpu_t *cp; in cpu_stat_ks_update() local
3332 cp = (cpu_t *)ksp->ks_private; in cpu_stat_ks_update()
3343 get_cpu_mstate(cp, msnsecs); in cpu_stat_ks_update()
3357 cso->cpu_sysinfo.bread = CPU_STATS(cp, sys.bread); in cpu_stat_ks_update()
3358 cso->cpu_sysinfo.bwrite = CPU_STATS(cp, sys.bwrite); in cpu_stat_ks_update()
3359 cso->cpu_sysinfo.lread = CPU_STATS(cp, sys.lread); in cpu_stat_ks_update()
3360 cso->cpu_sysinfo.lwrite = CPU_STATS(cp, sys.lwrite); in cpu_stat_ks_update()
3361 cso->cpu_sysinfo.phread = CPU_STATS(cp, sys.phread); in cpu_stat_ks_update()
3362 cso->cpu_sysinfo.phwrite = CPU_STATS(cp, sys.phwrite); in cpu_stat_ks_update()
3363 cso->cpu_sysinfo.pswitch = CPU_STATS(cp, sys.pswitch); in cpu_stat_ks_update()
3364 cso->cpu_sysinfo.trap = CPU_STATS(cp, sys.trap); in cpu_stat_ks_update()
3367 cso->cpu_sysinfo.intr += CPU_STATS(cp, sys.intr[i]); in cpu_stat_ks_update()
3368 cso->cpu_sysinfo.syscall = CPU_STATS(cp, sys.syscall); in cpu_stat_ks_update()
3369 cso->cpu_sysinfo.sysread = CPU_STATS(cp, sys.sysread); in cpu_stat_ks_update()
3370 cso->cpu_sysinfo.syswrite = CPU_STATS(cp, sys.syswrite); in cpu_stat_ks_update()
3371 cso->cpu_sysinfo.sysfork = CPU_STATS(cp, sys.sysfork); in cpu_stat_ks_update()
3372 cso->cpu_sysinfo.sysvfork = CPU_STATS(cp, sys.sysvfork); in cpu_stat_ks_update()
3373 cso->cpu_sysinfo.sysexec = CPU_STATS(cp, sys.sysexec); in cpu_stat_ks_update()
3374 cso->cpu_sysinfo.readch = CPU_STATS(cp, sys.readch); in cpu_stat_ks_update()
3375 cso->cpu_sysinfo.writech = CPU_STATS(cp, sys.writech); in cpu_stat_ks_update()
3376 cso->cpu_sysinfo.rcvint = CPU_STATS(cp, sys.rcvint); in cpu_stat_ks_update()
3377 cso->cpu_sysinfo.xmtint = CPU_STATS(cp, sys.xmtint); in cpu_stat_ks_update()
3378 cso->cpu_sysinfo.mdmint = CPU_STATS(cp, sys.mdmint); in cpu_stat_ks_update()
3379 cso->cpu_sysinfo.rawch = CPU_STATS(cp, sys.rawch); in cpu_stat_ks_update()
3380 cso->cpu_sysinfo.canch = CPU_STATS(cp, sys.canch); in cpu_stat_ks_update()
3381 cso->cpu_sysinfo.outch = CPU_STATS(cp, sys.outch); in cpu_stat_ks_update()
3382 cso->cpu_sysinfo.msg = CPU_STATS(cp, sys.msg); in cpu_stat_ks_update()
3383 cso->cpu_sysinfo.sema = CPU_STATS(cp, sys.sema); in cpu_stat_ks_update()
3384 cso->cpu_sysinfo.namei = CPU_STATS(cp, sys.namei); in cpu_stat_ks_update()
3385 cso->cpu_sysinfo.ufsiget = CPU_STATS(cp, sys.ufsiget); in cpu_stat_ks_update()
3386 cso->cpu_sysinfo.ufsdirblk = CPU_STATS(cp, sys.ufsdirblk); in cpu_stat_ks_update()
3387 cso->cpu_sysinfo.ufsipage = CPU_STATS(cp, sys.ufsipage); in cpu_stat_ks_update()
3388 cso->cpu_sysinfo.ufsinopage = CPU_STATS(cp, sys.ufsinopage); in cpu_stat_ks_update()
3391 cso->cpu_sysinfo.procovf = CPU_STATS(cp, sys.procovf); in cpu_stat_ks_update()
3394 cso->cpu_sysinfo.intrthread += CPU_STATS(cp, sys.intr[i]); in cpu_stat_ks_update()
3395 cso->cpu_sysinfo.intrblk = CPU_STATS(cp, sys.intrblk); in cpu_stat_ks_update()
3396 cso->cpu_sysinfo.idlethread = CPU_STATS(cp, sys.idlethread); in cpu_stat_ks_update()
3397 cso->cpu_sysinfo.inv_swtch = CPU_STATS(cp, sys.inv_swtch); in cpu_stat_ks_update()
3398 cso->cpu_sysinfo.nthreads = CPU_STATS(cp, sys.nthreads); in cpu_stat_ks_update()
3399 cso->cpu_sysinfo.cpumigrate = CPU_STATS(cp, sys.cpumigrate); in cpu_stat_ks_update()
3400 cso->cpu_sysinfo.xcalls = CPU_STATS(cp, sys.xcalls); in cpu_stat_ks_update()
3401 cso->cpu_sysinfo.mutex_adenters = CPU_STATS(cp, sys.mutex_adenters); in cpu_stat_ks_update()
3402 cso->cpu_sysinfo.rw_rdfails = CPU_STATS(cp, sys.rw_rdfails); in cpu_stat_ks_update()
3403 cso->cpu_sysinfo.rw_wrfails = CPU_STATS(cp, sys.rw_wrfails); in cpu_stat_ks_update()
3404 cso->cpu_sysinfo.modload = CPU_STATS(cp, sys.modload); in cpu_stat_ks_update()
3405 cso->cpu_sysinfo.modunload = CPU_STATS(cp, sys.modunload); in cpu_stat_ks_update()
3406 cso->cpu_sysinfo.bawrite = CPU_STATS(cp, sys.bawrite); in cpu_stat_ks_update()
3414 cso->cpu_syswait.iowait = CPU_STATS(cp, sys.iowait); in cpu_stat_ks_update()
3418 cso->cpu_vminfo.pgrec = CPU_STATS(cp, vm.pgrec); in cpu_stat_ks_update()
3419 cso->cpu_vminfo.pgfrec = CPU_STATS(cp, vm.pgfrec); in cpu_stat_ks_update()
3420 cso->cpu_vminfo.pgin = CPU_STATS(cp, vm.pgin); in cpu_stat_ks_update()
3421 cso->cpu_vminfo.pgpgin = CPU_STATS(cp, vm.pgpgin); in cpu_stat_ks_update()
3422 cso->cpu_vminfo.pgout = CPU_STATS(cp, vm.pgout); in cpu_stat_ks_update()
3423 cso->cpu_vminfo.pgpgout = CPU_STATS(cp, vm.pgpgout); in cpu_stat_ks_update()
3424 cso->cpu_vminfo.swapin = CPU_STATS(cp, vm.swapin); in cpu_stat_ks_update()
3425 cso->cpu_vminfo.pgswapin = CPU_STATS(cp, vm.pgswapin); in cpu_stat_ks_update()
3426 cso->cpu_vminfo.swapout = CPU_STATS(cp, vm.swapout); in cpu_stat_ks_update()
3427 cso->cpu_vminfo.pgswapout = CPU_STATS(cp, vm.pgswapout); in cpu_stat_ks_update()
3428 cso->cpu_vminfo.zfod = CPU_STATS(cp, vm.zfod); in cpu_stat_ks_update()
3429 cso->cpu_vminfo.dfree = CPU_STATS(cp, vm.dfree); in cpu_stat_ks_update()
3430 cso->cpu_vminfo.scan = CPU_STATS(cp, vm.scan); in cpu_stat_ks_update()
3431 cso->cpu_vminfo.rev = CPU_STATS(cp, vm.rev); in cpu_stat_ks_update()
3432 cso->cpu_vminfo.hat_fault = CPU_STATS(cp, vm.hat_fault); in cpu_stat_ks_update()
3433 cso->cpu_vminfo.as_fault = CPU_STATS(cp, vm.as_fault); in cpu_stat_ks_update()
3434 cso->cpu_vminfo.maj_fault = CPU_STATS(cp, vm.maj_fault); in cpu_stat_ks_update()
3435 cso->cpu_vminfo.cow_fault = CPU_STATS(cp, vm.cow_fault); in cpu_stat_ks_update()
3436 cso->cpu_vminfo.prot_fault = CPU_STATS(cp, vm.prot_fault); in cpu_stat_ks_update()
3437 cso->cpu_vminfo.softlock = CPU_STATS(cp, vm.softlock); in cpu_stat_ks_update()
3438 cso->cpu_vminfo.kernel_asflt = CPU_STATS(cp, vm.kernel_asflt); in cpu_stat_ks_update()
3439 cso->cpu_vminfo.pgrrun = CPU_STATS(cp, vm.pgrrun); in cpu_stat_ks_update()
3440 cso->cpu_vminfo.execpgin = CPU_STATS(cp, vm.execpgin); in cpu_stat_ks_update()
3441 cso->cpu_vminfo.execpgout = CPU_STATS(cp, vm.execpgout); in cpu_stat_ks_update()
3442 cso->cpu_vminfo.execfree = CPU_STATS(cp, vm.execfree); in cpu_stat_ks_update()
3443 cso->cpu_vminfo.anonpgin = CPU_STATS(cp, vm.anonpgin); in cpu_stat_ks_update()
3444 cso->cpu_vminfo.anonpgout = CPU_STATS(cp, vm.anonpgout); in cpu_stat_ks_update()
3445 cso->cpu_vminfo.anonfree = CPU_STATS(cp, vm.anonfree); in cpu_stat_ks_update()
3446 cso->cpu_vminfo.fspgin = CPU_STATS(cp, vm.fspgin); in cpu_stat_ks_update()
3447 cso->cpu_vminfo.fspgout = CPU_STATS(cp, vm.fspgout); in cpu_stat_ks_update()
3448 cso->cpu_vminfo.fsfree = CPU_STATS(cp, vm.fsfree); in cpu_stat_ks_update()