Lines Matching refs:ss

70 acquire_cpus(struct snapshot *ss, kstat_ctl_t *kc)  in acquire_cpus()  argument
74 ss->s_nr_cpus = sysconf(_SC_CPUID_MAX) + 1; in acquire_cpus()
75 ss->s_cpus = calloc(ss->s_nr_cpus, sizeof (struct cpu_snapshot)); in acquire_cpus()
76 if (ss->s_cpus == NULL) in acquire_cpus()
79 for (i = 0; i < ss->s_nr_cpus; i++) { in acquire_cpus()
82 ss->s_cpus[i].cs_id = ID_NO_CPU; in acquire_cpus()
83 ss->s_cpus[i].cs_state = p_online(i, P_STATUS); in acquire_cpus()
85 if (ss->s_cpus[i].cs_state == -1) in acquire_cpus()
87 ss->s_cpus[i].cs_id = i; in acquire_cpus()
92 (void) pset_assign(PS_QUERY, i, &ss->s_cpus[i].cs_pset_id); in acquire_cpus()
93 if (ss->s_cpus[i].cs_pset_id == PS_NONE) in acquire_cpus()
94 ss->s_cpus[i].cs_pset_id = ID_NO_PSET; in acquire_cpus()
96 if (!CPU_ACTIVE(&ss->s_cpus[i])) in acquire_cpus()
102 if (kstat_copy(ksp, &ss->s_cpus[i].cs_vm)) in acquire_cpus()
108 if (kstat_copy(ksp, &ss->s_cpus[i].cs_sys)) in acquire_cpus()
118 acquire_psets(struct snapshot *ss) in acquire_psets() argument
141 ss->s_psets = calloc(pids_nr + 1, sizeof (struct pset_snapshot)); in acquire_psets()
142 if (ss->s_psets == NULL) in acquire_psets()
144 ss->s_nr_psets = pids_nr + 1; in acquire_psets()
147 ps = &ss->s_psets[0]; in acquire_psets()
149 ps->ps_cpus = calloc(ss->s_nr_cpus, sizeof (struct cpu_snapshot *)); in acquire_psets()
154 for (i = 1; i < ss->s_nr_psets; i++) { in acquire_psets()
155 ps = &ss->s_psets[i]; in acquire_psets()
159 calloc(ss->s_nr_cpus, sizeof (struct cpu_snapshot *)); in acquire_psets()
164 for (i = 0; i < ss->s_nr_psets; i++) { in acquire_psets()
165 ps = &ss->s_psets[i]; in acquire_psets()
167 for (j = 0; j < ss->s_nr_cpus; j++) { in acquire_psets()
168 if (!CPU_ACTIVE(&ss->s_cpus[j])) in acquire_psets()
170 if (ss->s_cpus[j].cs_pset_id != ps->ps_id) in acquire_psets()
173 ps->ps_cpus[ps->ps_nr_cpus++] = &ss->s_cpus[j]; in acquire_psets()
184 acquire_intrs(struct snapshot *ss, kstat_ctl_t *kc) in acquire_intrs() argument
192 ss->s_nr_intrs = 1; in acquire_intrs()
196 ss->s_nr_intrs++; in acquire_intrs()
199 ss->s_intrs = calloc(ss->s_nr_intrs, sizeof (struct intr_snapshot)); in acquire_intrs()
200 if (ss->s_intrs == NULL) in acquire_intrs()
211 (void) strlcpy(ss->s_intrs[0].is_name, "clock", KSTAT_STRLEN); in acquire_intrs()
212 ss->s_intrs[0].is_total = clock->value.ui32; in acquire_intrs()
227 (void) strlcpy(ss->s_intrs[i].is_name, ksp->ks_name, in acquire_intrs()
229 ss->s_intrs[i].is_total = 0; in acquire_intrs()
232 ss->s_intrs[i].is_total += ki->intrs[j]; in acquire_intrs()
243 acquire_sys(struct snapshot *ss, kstat_ctl_t *kc) in acquire_sys() argument
252 if (kstat_read(kc, ksp, &ss->s_sys.ss_sysinfo) == -1) in acquire_sys()
258 if (kstat_read(kc, ksp, &ss->s_sys.ss_vminfo) == -1) in acquire_sys()
264 if (kstat_read(kc, ksp, &ss->s_sys.ss_nc) == -1) in acquire_sys()
277 ss->s_sys.ss_ticks = knp->value.l; in acquire_sys()
283 ss->s_sys.ss_deficit = knp->value.l; in acquire_sys()
285 for (i = 0; i < ss->s_nr_cpus; i++) { in acquire_sys()
286 if (!CPU_ACTIVE(&ss->s_cpus[i])) in acquire_sys()
289 if (kstat_add(&ss->s_cpus[i].cs_sys, &ss->s_sys.ss_agg_sys)) in acquire_sys()
291 if (kstat_add(&ss->s_cpus[i].cs_vm, &ss->s_sys.ss_agg_vm)) in acquire_sys()
293 ss->s_nr_active_cpus++; in acquire_sys()
302 struct snapshot *ss = NULL; in acquire_snapshot() local
308 free_snapshot(ss); in acquire_snapshot()
310 ss = safe_alloc(sizeof (struct snapshot)); in acquire_snapshot()
312 (void) memset(ss, 0, sizeof (struct snapshot)); in acquire_snapshot()
314 ss->s_types = types; in acquire_snapshot()
325 err = acquire_intrs(ss, kc); in acquire_snapshot()
328 err = acquire_cpus(ss, kc); in acquire_snapshot()
331 err = acquire_psets(ss); in acquire_snapshot()
335 err = acquire_iodevs(ss, kc, iodev_filter); in acquire_snapshot()
338 err = acquire_sys(ss, kc); in acquire_snapshot()
354 return (ss); in acquire_snapshot()
358 free_snapshot(struct snapshot *ss) in free_snapshot() argument
362 if (ss == NULL) in free_snapshot()
365 while (ss->s_iodevs) { in free_snapshot()
366 struct iodev_snapshot *tmp = ss->s_iodevs; in free_snapshot()
367 ss->s_iodevs = ss->s_iodevs->is_next; in free_snapshot()
371 if (ss->s_cpus) { in free_snapshot()
372 for (i = 0; i < ss->s_nr_cpus; i++) { in free_snapshot()
373 free(ss->s_cpus[i].cs_vm.ks_data); in free_snapshot()
374 free(ss->s_cpus[i].cs_sys.ks_data); in free_snapshot()
376 free(ss->s_cpus); in free_snapshot()
379 if (ss->s_psets) { in free_snapshot()
380 for (i = 0; i < ss->s_nr_psets; i++) in free_snapshot()
381 free(ss->s_psets[i].ps_cpus); in free_snapshot()
382 free(ss->s_psets); in free_snapshot()
385 free(ss->s_sys.ss_agg_sys.ks_data); in free_snapshot()
386 free(ss->s_sys.ss_agg_vm.ks_data); in free_snapshot()
387 free(ss); in free_snapshot()
499 nr_active_cpus(struct snapshot *ss) in nr_active_cpus() argument
503 for (i = 0; i < ss->s_nr_cpus; i++) { in nr_active_cpus()
504 if (CPU_ACTIVE(&ss->s_cpus[i])) in nr_active_cpus()