Lines Matching refs:pg
226 pghw_init(pghw_t *pg, cpu_t *cp, pghw_type_t hw) in pghw_init() argument
237 pghw_set_add(hwset, pg); in pghw_init()
238 pg->pghw_hw = hw; in pghw_init()
239 pg->pghw_generation = 0; in pghw_init()
240 pg->pghw_instance = in pghw_init()
242 pghw_kstat_create(pg); in pghw_init()
247 switch (pg->pghw_hw) { in pghw_init()
249 pg->pghw_handle = in pghw_init()
253 pg->pghw_handle = in pghw_init()
257 pg->pghw_handle = (pghw_handle_t)NULL; in pghw_init()
265 pghw_fini(pghw_t *pg) in pghw_fini() argument
269 pghw_cmt_fini(pg); in pghw_fini()
271 hwset = pghw_set_lookup(pg->pghw_hw); in pghw_fini()
274 pghw_set_remove(hwset, pg); in pghw_fini()
275 pg->pghw_instance = (id_t)PGHW_INSTANCE_ANON; in pghw_fini()
276 pg->pghw_hw = (pghw_type_t)-1; in pghw_fini()
278 if (pg->pghw_kstat != NULL) in pghw_fini()
279 kstat_delete(pg->pghw_kstat); in pghw_fini()
287 pghw_cmt_fini(pghw_t *pg) in pghw_cmt_fini() argument
292 if (pg->pghw_cpulist != NULL) { in pghw_cmt_fini()
293 kmem_free(pg->pghw_cpulist, in pghw_cmt_fini()
294 pg->pghw_cpulist_len); in pghw_cmt_fini()
295 pg->pghw_cpulist = NULL; in pghw_cmt_fini()
301 if (pg->pghw_cu_kstat != NULL) { in pghw_cmt_fini()
302 kstat_delete(pg->pghw_cu_kstat); in pghw_cmt_fini()
303 pg->pghw_cu_kstat = NULL; in pghw_cmt_fini()
332 pghw_t *pg; in pghw_find_pg() local
335 while ((pg = group_iterate(&cp->cpu_pg->pgs, &i)) != NULL) { in pghw_find_pg()
336 if (pg->pghw_hw == hw) in pghw_find_pg()
337 return (pg); in pghw_find_pg()
351 pghw_t *pg; in pghw_find_by_instance() local
358 while ((pg = group_iterate(set, &i)) != NULL) { in pghw_find_by_instance()
359 if (pg->pghw_instance == id) in pghw_find_by_instance()
360 return (pg); in pghw_find_by_instance()
444 pghw_set_add(group_t *hwset, pghw_t *pg) in pghw_set_add() argument
446 (void) group_add(hwset, pg, GRP_RESIZE); in pghw_set_add()
453 pghw_set_remove(group_t *hwset, pghw_t *pg) in pghw_set_remove() argument
457 result = group_remove(hwset, pg, GRP_RESIZE); in pghw_set_remove()
497 pghw_kstat_create(pghw_t *pg) in pghw_kstat_create() argument
499 char *sharing = pghw_type_string(pg->pghw_hw); in pghw_kstat_create()
505 (void) strncpy(name, pghw_type_string(pg->pghw_hw), KSTAT_STRLEN + 1); in pghw_kstat_create()
511 if ((pg->pghw_kstat = kstat_create("pg", ((pg_t *)pg)->pg_id, in pghw_kstat_create()
517 pg->pghw_kstat->ks_data_size += PG_CLASS_NAME_MAX; in pghw_kstat_create()
518 pg->pghw_kstat->ks_data_size += PGHW_KSTAT_STR_LEN_MAX; in pghw_kstat_create()
519 pg->pghw_kstat->ks_data_size += PGHW_KSTAT_STR_LEN_MAX; in pghw_kstat_create()
520 pg->pghw_kstat->ks_lock = &pghw_kstat_lock; in pghw_kstat_create()
521 pg->pghw_kstat->ks_data = &pghw_kstat; in pghw_kstat_create()
522 pg->pghw_kstat->ks_update = pghw_kstat_update; in pghw_kstat_create()
523 pg->pghw_kstat->ks_private = pg; in pghw_kstat_create()
524 kstat_install(pg->pghw_kstat); in pghw_kstat_create()
533 if ((pg->pghw_cu_kstat = kstat_create("pg_hw_perf", ((pg_t *)pg)->pg_id, in pghw_kstat_create()
538 pg->pghw_cu_kstat->ks_lock = &pghw_kstat_lock; in pghw_kstat_create()
539 pg->pghw_cu_kstat->ks_data = &pghw_cu_kstat; in pghw_kstat_create()
540 pg->pghw_cu_kstat->ks_update = pghw_cu_kstat_update; in pghw_kstat_create()
541 pg->pghw_cu_kstat->ks_private = pg; in pghw_kstat_create()
542 pg->pghw_cu_kstat->ks_data_size += strlen(sharing) + 1; in pghw_kstat_create()
544 pg->pghw_cu_kstat->ks_data_size += PGHW_KSTAT_STR_LEN_MAX; in pghw_kstat_create()
545 pg->pghw_cu_kstat->ks_data_size += pg_cpulist_maxlen; in pghw_kstat_create()
546 kstat_install(pg->pghw_cu_kstat); in pghw_kstat_create()
554 pghw_t *pg = ksp->ks_private; in pghw_kstat_update() local
559 pgsp->pg_id.value.ui32 = ((pg_t *)pg)->pg_id; in pghw_kstat_update()
560 pgsp->pg_ncpus.value.ui32 = GROUP_SIZE(&((pg_t *)pg)->pg_cpus); in pghw_kstat_update()
561 pgsp->pg_instance_id.value.ui32 = pg->pghw_instance; in pghw_kstat_update()
562 kstat_named_setstr(&pgsp->pg_class, ((pg_t *)pg)->pg_class->pgc_name); in pghw_kstat_update()
563 kstat_named_setstr(&pgsp->pg_hw, pghw_type_string(pg->pghw_hw)); in pghw_kstat_update()
564 kstat_named_setstr(&pgsp->pg_policy, pg_policy_name((pg_t *)pg)); in pghw_kstat_update()
572 pghw_t *pg = ksp->ks_private; in pghw_cu_kstat_update() local
573 pghw_util_t *hw_util = &pg->pghw_stats; in pghw_cu_kstat_update()
586 pgsp->pg_id.value.i32 = ((pg_t *)pg)->pg_id; in pghw_cu_kstat_update()
587 pgsp->pg_parent_id.value.i32 = (int)pghw_parent_id(pg); in pghw_cu_kstat_update()
589 pgsp->pg_ncpus.value.ui32 = GROUP_SIZE(&((pg_t *)pg)->pg_cpus); in pghw_cu_kstat_update()
596 pghw_cpulist_alloc(pg); in pghw_cu_kstat_update()
598 if (pg->pghw_kstat_gen != pg->pghw_generation) { in pghw_cu_kstat_update()
610 pg->pghw_kstat_gen = pg->pghw_generation; in pghw_cu_kstat_update()
620 if (pg->pghw_cpulist != NULL && in pghw_cu_kstat_update()
621 *(pg->pghw_cpulist) == '\0') { in pghw_cu_kstat_update()
622 (void) group2intlist(&(((pg_t *)pg)->pg_cpus), in pghw_cu_kstat_update()
623 pg->pghw_cpulist, pg->pghw_cpulist_len, cpu2id); in pghw_cu_kstat_update()
627 cu_pg_update(pg); in pghw_cu_kstat_update()
632 pgsp->pg_generation.value.ui32 = pg->pghw_kstat_gen; in pghw_cu_kstat_update()
633 if (pg->pghw_cpulist != NULL) in pghw_cu_kstat_update()
634 kstat_named_setstr(&pgsp->pg_cpus, pg->pghw_cpulist); in pghw_cu_kstat_update()
639 pghw_type_string(pg->pghw_hw)); in pghw_cu_kstat_update()
671 pghw_cpulist_alloc(pghw_t *pg) in pghw_cpulist_alloc() argument
673 uint_t ncpus = GROUP_SIZE(&((pg_t *)pg)->pg_cpus); in pghw_cpulist_alloc()
681 if (pg->pghw_cpulist != NULL && in pghw_cpulist_alloc()
682 pg->pghw_kstat_gen != pg->pghw_generation) { in pghw_cpulist_alloc()
683 if (len <= pg->pghw_cpulist_len) { in pghw_cpulist_alloc()
689 *(pg->pghw_cpulist) = '\0'; in pghw_cpulist_alloc()
695 ASSERT(strlen(pg->pghw_cpulist) < pg->pghw_cpulist_len); in pghw_cpulist_alloc()
696 kmem_free(pg->pghw_cpulist, pg->pghw_cpulist_len); in pghw_cpulist_alloc()
697 pg->pghw_cpulist = NULL; in pghw_cpulist_alloc()
698 pg->pghw_cpulist_len = 0; in pghw_cpulist_alloc()
702 if (pg->pghw_cpulist == NULL) { in pghw_cpulist_alloc()
712 pg->pghw_cpulist = kmem_zalloc(len, KM_NOSLEEP); in pghw_cpulist_alloc()
713 if (pg->pghw_cpulist != NULL) in pghw_cpulist_alloc()
714 pg->pghw_cpulist_len = len; in pghw_cpulist_alloc()
737 pg_t *pg = (pg_t *)pghw; in pghw_parent_id() local
740 if (pg != NULL && strcmp(pg->pg_class->pgc_name, "cmt") == 0) { in pghw_parent_id()
741 pg_cmt_t *cmt = (pg_cmt_t *)pg; in pghw_parent_id()