Lines Matching refs:pg

227 pghw_init(pghw_t *pg, cpu_t *cp, pghw_type_t hw)  in pghw_init()  argument
238 pghw_set_add(hwset, pg); in pghw_init()
239 pg->pghw_hw = hw; in pghw_init()
240 pg->pghw_generation = 0; in pghw_init()
241 pg->pghw_instance = in pghw_init()
243 pghw_kstat_create(pg); in pghw_init()
248 switch (pg->pghw_hw) { in pghw_init()
250 pg->pghw_handle = in pghw_init()
254 pg->pghw_handle = in pghw_init()
258 pg->pghw_handle = (pghw_handle_t)NULL; in pghw_init()
266 pghw_fini(pghw_t *pg) in pghw_fini() argument
270 pghw_cmt_fini(pg); in pghw_fini()
272 hwset = pghw_set_lookup(pg->pghw_hw); in pghw_fini()
275 pghw_set_remove(hwset, pg); in pghw_fini()
276 pg->pghw_instance = (id_t)PGHW_INSTANCE_ANON; in pghw_fini()
277 pg->pghw_hw = (pghw_type_t)-1; in pghw_fini()
279 if (pg->pghw_kstat != NULL) in pghw_fini()
280 kstat_delete(pg->pghw_kstat); in pghw_fini()
288 pghw_cmt_fini(pghw_t *pg) in pghw_cmt_fini() argument
293 if (pg->pghw_cpulist != NULL) { in pghw_cmt_fini()
294 kmem_free(pg->pghw_cpulist, in pghw_cmt_fini()
295 pg->pghw_cpulist_len); in pghw_cmt_fini()
296 pg->pghw_cpulist = NULL; in pghw_cmt_fini()
302 if (pg->pghw_cu_kstat != NULL) { in pghw_cmt_fini()
303 kstat_delete(pg->pghw_cu_kstat); in pghw_cmt_fini()
304 pg->pghw_cu_kstat = NULL; in pghw_cmt_fini()
333 pghw_t *pg; in pghw_find_pg() local
336 while ((pg = group_iterate(&cp->cpu_pg->pgs, &i)) != NULL) { in pghw_find_pg()
337 if (pg->pghw_hw == hw) in pghw_find_pg()
338 return (pg); in pghw_find_pg()
352 pghw_t *pg; in pghw_find_by_instance() local
359 while ((pg = group_iterate(set, &i)) != NULL) { in pghw_find_by_instance()
360 if (pg->pghw_instance == id) in pghw_find_by_instance()
361 return (pg); in pghw_find_by_instance()
445 pghw_set_add(group_t *hwset, pghw_t *pg) in pghw_set_add() argument
447 (void) group_add(hwset, pg, GRP_RESIZE); in pghw_set_add()
454 pghw_set_remove(group_t *hwset, pghw_t *pg) in pghw_set_remove() argument
458 result = group_remove(hwset, pg, GRP_RESIZE); in pghw_set_remove()
498 pghw_kstat_create(pghw_t *pg) in pghw_kstat_create() argument
500 char *sharing = pghw_type_string(pg->pghw_hw); in pghw_kstat_create()
506 (void) strncpy(name, pghw_type_string(pg->pghw_hw), KSTAT_STRLEN + 1); in pghw_kstat_create()
512 if ((pg->pghw_kstat = kstat_create("pg", ((pg_t *)pg)->pg_id, in pghw_kstat_create()
518 pg->pghw_kstat->ks_data_size += PG_CLASS_NAME_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_data_size += PGHW_KSTAT_STR_LEN_MAX; in pghw_kstat_create()
521 pg->pghw_kstat->ks_lock = &pghw_kstat_lock; in pghw_kstat_create()
522 pg->pghw_kstat->ks_data = &pghw_kstat; in pghw_kstat_create()
523 pg->pghw_kstat->ks_update = pghw_kstat_update; in pghw_kstat_create()
524 pg->pghw_kstat->ks_private = pg; in pghw_kstat_create()
525 kstat_install(pg->pghw_kstat); in pghw_kstat_create()
534 if ((pg->pghw_cu_kstat = kstat_create("pg_hw_perf", ((pg_t *)pg)->pg_id, in pghw_kstat_create()
539 pg->pghw_cu_kstat->ks_lock = &pghw_kstat_lock; in pghw_kstat_create()
540 pg->pghw_cu_kstat->ks_data = &pghw_cu_kstat; in pghw_kstat_create()
541 pg->pghw_cu_kstat->ks_update = pghw_cu_kstat_update; in pghw_kstat_create()
542 pg->pghw_cu_kstat->ks_private = pg; in pghw_kstat_create()
543 pg->pghw_cu_kstat->ks_data_size += strlen(sharing) + 1; in pghw_kstat_create()
545 pg->pghw_cu_kstat->ks_data_size += PGHW_KSTAT_STR_LEN_MAX; in pghw_kstat_create()
546 pg->pghw_cu_kstat->ks_data_size += pg_cpulist_maxlen; in pghw_kstat_create()
547 kstat_install(pg->pghw_cu_kstat); in pghw_kstat_create()
555 pghw_t *pg = ksp->ks_private; in pghw_kstat_update() local
560 pgsp->pg_id.value.ui32 = ((pg_t *)pg)->pg_id; in pghw_kstat_update()
561 pgsp->pg_ncpus.value.ui32 = GROUP_SIZE(&((pg_t *)pg)->pg_cpus); in pghw_kstat_update()
562 pgsp->pg_instance_id.value.ui32 = pg->pghw_instance; in pghw_kstat_update()
563 kstat_named_setstr(&pgsp->pg_class, ((pg_t *)pg)->pg_class->pgc_name); in pghw_kstat_update()
564 kstat_named_setstr(&pgsp->pg_hw, pghw_type_string(pg->pghw_hw)); in pghw_kstat_update()
565 kstat_named_setstr(&pgsp->pg_policy, pg_policy_name((pg_t *)pg)); in pghw_kstat_update()
573 pghw_t *pg = ksp->ks_private; in pghw_cu_kstat_update() local
574 pghw_util_t *hw_util = &pg->pghw_stats; in pghw_cu_kstat_update()
587 pgsp->pg_id.value.i32 = ((pg_t *)pg)->pg_id; in pghw_cu_kstat_update()
588 pgsp->pg_parent_id.value.i32 = (int)pghw_parent_id(pg); in pghw_cu_kstat_update()
590 pgsp->pg_ncpus.value.ui32 = GROUP_SIZE(&((pg_t *)pg)->pg_cpus); in pghw_cu_kstat_update()
597 pghw_cpulist_alloc(pg); in pghw_cu_kstat_update()
599 if (pg->pghw_kstat_gen != pg->pghw_generation) { in pghw_cu_kstat_update()
611 pg->pghw_kstat_gen = pg->pghw_generation; in pghw_cu_kstat_update()
621 if (pg->pghw_cpulist != NULL && in pghw_cu_kstat_update()
622 *(pg->pghw_cpulist) == '\0') { in pghw_cu_kstat_update()
623 (void) group2intlist(&(((pg_t *)pg)->pg_cpus), in pghw_cu_kstat_update()
624 pg->pghw_cpulist, pg->pghw_cpulist_len, cpu2id); in pghw_cu_kstat_update()
628 cu_pg_update(pg); in pghw_cu_kstat_update()
633 pgsp->pg_generation.value.ui32 = pg->pghw_kstat_gen; in pghw_cu_kstat_update()
634 if (pg->pghw_cpulist != NULL) in pghw_cu_kstat_update()
635 kstat_named_setstr(&pgsp->pg_cpus, pg->pghw_cpulist); in pghw_cu_kstat_update()
640 pghw_type_string(pg->pghw_hw)); in pghw_cu_kstat_update()
672 pghw_cpulist_alloc(pghw_t *pg) in pghw_cpulist_alloc() argument
674 uint_t ncpus = GROUP_SIZE(&((pg_t *)pg)->pg_cpus); in pghw_cpulist_alloc()
682 if (pg->pghw_cpulist != NULL && in pghw_cpulist_alloc()
683 pg->pghw_kstat_gen != pg->pghw_generation) { in pghw_cpulist_alloc()
684 if (len <= pg->pghw_cpulist_len) { in pghw_cpulist_alloc()
690 *(pg->pghw_cpulist) = '\0'; in pghw_cpulist_alloc()
696 ASSERT(strlen(pg->pghw_cpulist) < pg->pghw_cpulist_len); in pghw_cpulist_alloc()
697 kmem_free(pg->pghw_cpulist, pg->pghw_cpulist_len); in pghw_cpulist_alloc()
698 pg->pghw_cpulist = NULL; in pghw_cpulist_alloc()
699 pg->pghw_cpulist_len = 0; in pghw_cpulist_alloc()
703 if (pg->pghw_cpulist == NULL) { in pghw_cpulist_alloc()
713 pg->pghw_cpulist = kmem_zalloc(len, KM_NOSLEEP); in pghw_cpulist_alloc()
714 if (pg->pghw_cpulist != NULL) in pghw_cpulist_alloc()
715 pg->pghw_cpulist_len = len; in pghw_cpulist_alloc()
738 pg_t *pg = (pg_t *)pghw; in pghw_parent_id() local
741 if (pg != NULL && strcmp(pg->pg_class->pgc_name, "cmt") == 0) { in pghw_parent_id()
742 pg_cmt_t *cmt = (pg_cmt_t *)pg; in pghw_parent_id()