Lines Matching refs:ctl

809 zsd_lookup_zone(zsd_ctl_t *ctl, char *zonename, zoneid_t zoneid)  in zsd_lookup_zone()  argument
813 for (zone = list_head(&ctl->zsctl_zones); zone != NULL; in zsd_lookup_zone()
814 zone = list_next(&ctl->zsctl_zones, zone)) { in zsd_lookup_zone()
825 zsd_lookup_zone_byid(zsd_ctl_t *ctl, zoneid_t zoneid) in zsd_lookup_zone_byid() argument
829 for (zone = list_head(&ctl->zsctl_zones); zone != NULL; in zsd_lookup_zone_byid()
830 zone = list_next(&ctl->zsctl_zones, zone)) { in zsd_lookup_zone_byid()
838 zsd_allocate_zone(zsd_ctl_t *ctl, char *zonename, zoneid_t zoneid) in zsd_allocate_zone() argument
872 ctl->zsctl_nzones++; in zsd_allocate_zone()
878 zsd_lookup_insert_zone(zsd_ctl_t *ctl, char *zonename, zoneid_t zoneid) in zsd_lookup_insert_zone() argument
882 if ((zone = zsd_lookup_zone(ctl, zonename, zoneid)) != NULL) in zsd_lookup_insert_zone()
885 if ((zone = zsd_allocate_zone(ctl, zonename, zoneid)) == NULL) in zsd_lookup_insert_zone()
889 tmp = list_head(&ctl->zsctl_zones); in zsd_lookup_insert_zone()
891 tmp = list_next(&ctl->zsctl_zones, tmp); in zsd_lookup_insert_zone()
893 list_insert_before(&ctl->zsctl_zones, tmp, zone); in zsd_lookup_insert_zone()
903 zsd_mark_zones_start(zsd_ctl_t *ctl) in zsd_mark_zones_start() argument
908 for (zone = list_head(&ctl->zsctl_zones); zone != NULL; in zsd_mark_zones_start()
909 zone = list_next(&ctl->zsctl_zones, zone)) { in zsd_mark_zones_start()
939 zsd_mark_psets_start(zsd_ctl_t *ctl) in zsd_mark_psets_start() argument
943 for (pset = list_head(&ctl->zsctl_psets); pset != NULL; in zsd_mark_psets_start()
944 pset = list_next(&ctl->zsctl_psets, pset)) { in zsd_mark_psets_start()
1035 zsd_add_usage(zsd_ctl_t *ctl, zsd_pset_usage_t *usage, timestruc_t *delta) in zsd_add_usage() argument
1037 zsd_system_t *system = ctl->zsctl_system; in zsd_add_usage()
1049 zsd_mark_psets_end(zsd_ctl_t *ctl) in zsd_mark_psets_end() argument
1057 pset = list_head(&ctl->zsctl_psets); in zsd_mark_psets_end()
1063 pset = list_next(&ctl->zsctl_psets, pset); in zsd_mark_psets_end()
1064 list_remove(&ctl->zsctl_psets, tmp); in zsd_mark_psets_end()
1066 ctl->zsctl_npsets--; in zsd_mark_psets_end()
1075 pset = list_next(&ctl->zsctl_psets, pset); in zsd_mark_psets_end()
1081 zsd_mark_pset_usages_end(zsd_ctl_t *ctl) in zsd_mark_pset_usages_end() argument
1091 for (pset = list_head(&ctl->zsctl_psets); pset != NULL; in zsd_mark_pset_usages_end()
1092 pset = list_next(&ctl->zsctl_psets, pset)) { in zsd_mark_pset_usages_end()
1108 ctl->zsctl_npset_usages--; in zsd_mark_pset_usages_end()
1132 zsd_mark_zone_found(zsd_ctl_t *ctl, zsd_zone_t *zone, uint64_t cpu_shares, in zsd_mark_zone_found() argument
1141 zsd_system_t *sys = ctl->zsctl_system; in zsd_mark_zone_found()
1208 zsd_mark_zones_end(zsd_ctl_t *ctl) in zsd_mark_zones_end() argument
1216 zone = list_head(&ctl->zsctl_zones); in zsd_mark_zones_end()
1226 zone = list_next(&ctl->zsctl_zones, zone); in zsd_mark_zones_end()
1227 list_remove(&ctl->zsctl_zones, tmp); in zsd_mark_zones_end()
1229 ctl->zsctl_nzones--; in zsd_mark_zones_end()
1237 zone = list_next(&ctl->zsctl_zones, zone); in zsd_mark_zones_end()
1250 zsd_mark_cpus_start(zsd_ctl_t *ctl, boolean_t roll) in zsd_mark_cpus_start() argument
1258 for (cpu = list_head(&ctl->zsctl_cpus); cpu != NULL; in zsd_mark_cpus_start()
1259 cpu = list_next(&ctl->zsctl_cpus, cpu)) { in zsd_mark_cpus_start()
1276 zsd_lookup_insert_cpu(zsd_ctl_t *ctl, processorid_t cpuid) in zsd_lookup_insert_cpu() argument
1280 assert(cpuid < ctl->zsctl_maxcpuid); in zsd_lookup_insert_cpu()
1281 cpu = &(ctl->zsctl_cpu_array[cpuid]); in zsd_lookup_insert_cpu()
1286 list_insert_tail(&ctl->zsctl_cpus, cpu); in zsd_lookup_insert_cpu()
1331 zsd_mark_cpus_end(zsd_ctl_t *ctl) in zsd_mark_cpus_end() argument
1337 cpu = list_head(&ctl->zsctl_cpus); in zsd_mark_cpus_end()
1345 cpu = list_next(&ctl->zsctl_cpus, cpu); in zsd_mark_cpus_end()
1346 list_remove(&ctl->zsctl_cpus, tmp); in zsd_mark_cpus_end()
1368 cpu = list_next(&ctl->zsctl_cpus, cpu); in zsd_mark_cpus_end()
1374 zsd_lookup_pset_byid(zsd_ctl_t *ctl, psetid_t psetid) in zsd_lookup_pset_byid() argument
1378 for (pset = list_head(&ctl->zsctl_psets); pset != NULL; in zsd_lookup_pset_byid()
1379 pset = list_next(&ctl->zsctl_psets, pset)) { in zsd_lookup_pset_byid()
1387 zsd_lookup_pset(zsd_ctl_t *ctl, char *psetname, psetid_t psetid) in zsd_lookup_pset() argument
1391 for (pset = list_head(&ctl->zsctl_psets); pset != NULL; in zsd_lookup_pset()
1392 pset = list_next(&ctl->zsctl_psets, pset)) { in zsd_lookup_pset()
1403 zsd_allocate_pset(zsd_ctl_t *ctl, char *psetname, psetid_t psetid) in zsd_allocate_pset() argument
1424 ctl->zsctl_npsets++; in zsd_allocate_pset()
1430 zsd_lookup_insert_pset(zsd_ctl_t *ctl, char *psetname, psetid_t psetid) in zsd_lookup_insert_pset() argument
1434 if ((pset = zsd_lookup_pset(ctl, psetname, psetid)) != NULL) in zsd_lookup_insert_pset()
1437 if ((pset = zsd_allocate_pset(ctl, psetname, psetid)) == NULL) in zsd_lookup_insert_pset()
1441 tmp = list_head(&ctl->zsctl_psets); in zsd_lookup_insert_pset()
1443 tmp = list_next(&ctl->zsctl_psets, tmp); in zsd_lookup_insert_pset()
1445 list_insert_before(&ctl->zsctl_psets, tmp, pset); in zsd_lookup_insert_pset()
1464 zsd_allocate_pset_usage(zsd_ctl_t *ctl, zsd_pset_t *pset, zsd_zone_t *zone) in zsd_allocate_pset_usage() argument
1491 ctl->zsctl_npset_usages++; in zsd_allocate_pset_usage()
1498 zsd_lookup_insert_usage(zsd_ctl_t *ctl, zsd_pset_t *pset, zsd_zone_t *zone) in zsd_lookup_insert_usage() argument
1506 if ((usage = zsd_allocate_pset_usage(ctl, pset, zone)) == NULL) in zsd_lookup_insert_usage()
1519 zsd_refresh_system(zsd_ctl_t *ctl) in zsd_refresh_system() argument
1521 zsd_system_t *system = ctl->zsctl_system; in zsd_refresh_system()
1536 zsd_update_cpu_stats(zsd_ctl_t *ctl, zsd_cpu_t *cpu) in zsd_update_cpu_stats() argument
1547 sys = ctl->zsctl_system; in zsd_update_cpu_stats()
1554 kstat = kstat_lookup(ctl->zsctl_kstat_ctl, "cpu", cpuid, "sys"); in zsd_update_cpu_stats()
1558 kid = kstat_read(ctl->zsctl_kstat_ctl, kstat, NULL); in zsd_update_cpu_stats()
1632 (pset_prev = zsd_lookup_pset_byid(ctl, in zsd_update_cpu_stats()
1665 zsd_get_pool_pset(zsd_ctl_t *ctl, psetid_t psetid, char *psetname, in zsd_get_pool_pset() argument
1671 pool_conf_t *conf = ctl->zsctl_pool_conf; in zsd_get_pool_pset()
1672 pool_value_t **vals = ctl->zsctl_pool_vals; in zsd_get_pool_pset()
1682 if (ctl->zsctl_pool_status == POOL_DISABLED) { in zsd_get_pool_pset()
1688 old = num = ctl->zsctl_cpu_ncache; in zsd_get_pool_pset()
1690 ctl->zsctl_cpu_cache); in zsd_get_pool_pset()
1701 ctl->zsctl_cpu_cache, num * in zsd_get_pool_pset()
1703 ctl->zsctl_cpu_ncache = num; in zsd_get_pool_pset()
1704 ctl->zsctl_cpu_cache = cache; in zsd_get_pool_pset()
1816 if (num > ctl->zsctl_cpu_ncache) { in zsd_get_pool_pset()
1818 ctl->zsctl_cpu_cache, num * in zsd_get_pool_pset()
1820 ctl->zsctl_cpu_ncache = num; in zsd_get_pool_pset()
1821 ctl->zsctl_cpu_cache = cache; in zsd_get_pool_pset()
1849 ctl->zsctl_cpu_cache[i] = (psetid_t)int64; in zsd_get_pool_pset()
1872 zsd_refresh_psets(zsd_ctl_t *ctl) in zsd_refresh_psets() argument
1893 system = ctl->zsctl_system; in zsd_refresh_psets()
1900 conf = ctl->zsctl_pool_conf; in zsd_refresh_psets()
1901 vals = ctl->zsctl_pool_vals; in zsd_refresh_psets()
1905 if (ctl->zsctl_pool_status == POOL_DISABLED) { in zsd_refresh_psets()
1906 if (pool_conf_open(ctl->zsctl_pool_conf, in zsd_refresh_psets()
1908 ctl->zsctl_pool_status = POOL_ENABLED; in zsd_refresh_psets()
1909 ctl->zsctl_pool_changed = POU_PSET; in zsd_refresh_psets()
1912 ctl->zsctl_pool_changed = 0; in zsd_refresh_psets()
1913 ret = pool_conf_update(ctl->zsctl_pool_conf, in zsd_refresh_psets()
1914 &(ctl->zsctl_pool_changed)); in zsd_refresh_psets()
1917 (void) pool_conf_close(ctl->zsctl_pool_conf); in zsd_refresh_psets()
1918 ctl->zsctl_pool_status = POOL_DISABLED; in zsd_refresh_psets()
1939 if (num > ctl->zsctl_pset_ncache) { in zsd_refresh_psets()
1940 if ((cache = (psetid_t *)realloc(ctl->zsctl_pset_cache, in zsd_refresh_psets()
1944 ctl->zsctl_pset_ncache = num; in zsd_refresh_psets()
1945 ctl->zsctl_pset_cache = cache; in zsd_refresh_psets()
1955 ctl->zsctl_pset_cache[i] = (int)sys_id; in zsd_refresh_psets()
1960 if (ctl->zsctl_pool_status == POOL_ENABLED) { in zsd_refresh_psets()
1961 (void) pool_conf_close(ctl->zsctl_pool_conf); in zsd_refresh_psets()
1962 ctl->zsctl_pool_status = POOL_DISABLED; in zsd_refresh_psets()
1966 old = num = ctl->zsctl_pset_ncache; in zsd_refresh_psets()
1967 (void) pset_list(ctl->zsctl_pset_cache, &num); in zsd_refresh_psets()
1971 if ((cache = (psetid_t *)realloc(ctl->zsctl_pset_cache, in zsd_refresh_psets()
1973 ctl->zsctl_pset_ncache = num + 1; in zsd_refresh_psets()
1974 ctl->zsctl_pset_cache = cache; in zsd_refresh_psets()
1984 ctl->zsctl_pset_cache[num] = ctl->zsctl_pset_cache[0]; in zsd_refresh_psets()
1985 ctl->zsctl_pset_cache[0] = ZS_PSET_DEFAULT; in zsd_refresh_psets()
1989 zsd_mark_cpus_start(ctl, roll_cpus); in zsd_refresh_psets()
1990 zsd_mark_psets_start(ctl); in zsd_refresh_psets()
1997 sys_id = ctl->zsctl_pset_cache[i]; in zsd_refresh_psets()
1998 if (zsd_get_pool_pset(ctl, sys_id, psetname, sizeof (psetname), in zsd_refresh_psets()
2011 pset = zsd_lookup_insert_pset(ctl, psetname, in zsd_refresh_psets()
2012 ctl->zsctl_pset_cache[i]); in zsd_refresh_psets()
2020 cpuid = ctl->zsctl_cpu_cache[j]; in zsd_refresh_psets()
2021 cpu = zsd_lookup_insert_cpu(ctl, cpuid); in zsd_refresh_psets()
2038 zsd_get_zone_pool_pset(zsd_ctl_t *ctl, zsd_zone_t *zone, in zsd_get_zone_pool_pset() argument
2046 pool_conf_t *conf = ctl->zsctl_pool_conf; in zsd_get_zone_pool_pset()
2048 pool_value_t **vals = ctl->zsctl_pool_vals; in zsd_get_zone_pool_pset()
2070 if (ctl->zsctl_pool_status == POOL_DISABLED) in zsd_get_zone_pool_pset()
2199 zsd_get_zone_caps(zsd_ctl_t *ctl, zsd_zone_t *zone, uint64_t *cpu_shares, in zsd_get_zone_caps() argument
2211 zsd_system_t *sys = ctl->zsctl_system; in zsd_get_zone_caps()
2374 zsd_refresh_zones(zsd_ctl_t *ctl) in zsd_refresh_zones() argument
2410 old = num = ctl->zsctl_zone_ncache; in zsd_refresh_zones()
2411 (void) zone_list(ctl->zsctl_zone_cache, &num); in zsd_refresh_zones()
2414 if ((cache = (zoneid_t *)realloc(ctl->zsctl_zone_cache, in zsd_refresh_zones()
2416 ctl->zsctl_zone_ncache = num; in zsd_refresh_zones()
2417 ctl->zsctl_zone_cache = cache; in zsd_refresh_zones()
2424 zsd_mark_zones_start(ctl); in zsd_refresh_zones()
2428 ret = getzonenamebyid(ctl->zsctl_zone_cache[i], in zsd_refresh_zones()
2433 zone = zsd_lookup_insert_zone(ctl, zonename, in zsd_refresh_zones()
2434 ctl->zsctl_zone_cache[i]); in zsd_refresh_zones()
2436 ret = zone_getattr(ctl->zsctl_zone_cache[i], ZONE_ATTR_FLAGS, in zsd_refresh_zones()
2446 zsd_get_zone_pool_pset(ctl, zone, poolname, sizeof (poolname), in zsd_refresh_zones()
2449 if (zsd_get_zone_caps(ctl, zone, &cpu_shares, &cpu_cap, in zsd_refresh_zones()
2456 zsd_mark_zone_found(ctl, zone, cpu_shares, cpu_cap, ram_cap, in zsd_refresh_zones()
2466 zsd_get_proc_info(zsd_ctl_t *ctl, psinfo_t *psinfo, psetid_t *psetid, in zsd_get_proc_info() argument
2474 proc = &(ctl->zsctl_proc_array[psinfo->pr_pid]); in zsd_get_proc_info()
2521 zsd_open_exacct(zsd_ctl_t *ctl, boolean_t init) in zsd_open_exacct() argument
2535 fd = &ctl->zsctl_proc_fd; in zsd_open_exacct()
2536 eaf = &ctl->zsctl_proc_eaf; in zsd_open_exacct()
2537 stat = &ctl->zsctl_proc_stat; in zsd_open_exacct()
2538 open = &ctl->zsctl_proc_open; in zsd_open_exacct()
2541 fd = &ctl->zsctl_proc_fd_next; in zsd_open_exacct()
2542 eaf = &ctl->zsctl_proc_eaf_next; in zsd_open_exacct()
2543 stat = &ctl->zsctl_proc_stat_next; in zsd_open_exacct()
2544 open = &ctl->zsctl_proc_open_next; in zsd_open_exacct()
2616 zsd_refresh_procs(zsd_ctl_t *ctl, boolean_t init) in zsd_refresh_procs() argument
2644 ret = zsd_open_exacct(ctl, init); in zsd_refresh_procs()
2682 zsd_get_proc_info(ctl, &psinfo, &psetid, &prev_psetid, in zsd_refresh_procs()
2691 zone = zsd_lookup_zone_byid(ctl, zoneid); in zsd_refresh_procs()
2694 pset = zsd_lookup_pset_byid(ctl, psetid); in zsd_refresh_procs()
2697 usage = zsd_lookup_insert_usage(ctl, pset, zone); in zsd_refresh_procs()
2706 prev_zone = zsd_lookup_zone_byid(ctl, prev_zoneid); in zsd_refresh_procs()
2711 prev_pset = zsd_lookup_pset_byid(ctl, prev_psetid); in zsd_refresh_procs()
2722 prev_usage = zsd_lookup_insert_usage(ctl, prev_pset, in zsd_refresh_procs()
2742 zsd_add_usage(ctl, usage, &delta); in zsd_refresh_procs()
2744 zsd_add_usage(ctl, usage, &d1); in zsd_refresh_procs()
2745 zsd_add_usage(ctl, prev_usage, &d2); in zsd_refresh_procs()
2779 ret = ea_get_object(&ctl->zsctl_proc_eaf, &object); in zsd_refresh_procs()
2790 stat = &(ctl->zsctl_proc_stat); in zsd_refresh_procs()
2791 stat_next = &(ctl->zsctl_proc_stat_next); in zsd_refresh_procs()
2799 ea_clear(&ctl->zsctl_proc_eaf); in zsd_refresh_procs()
2806 (void) ea_close(&ctl->zsctl_proc_eaf); in zsd_refresh_procs()
2808 ctl->zsctl_proc_fd = in zsd_refresh_procs()
2809 ctl->zsctl_proc_fd_next; in zsd_refresh_procs()
2810 ctl->zsctl_proc_eaf = in zsd_refresh_procs()
2811 ctl->zsctl_proc_eaf_next; in zsd_refresh_procs()
2812 ctl->zsctl_proc_stat = in zsd_refresh_procs()
2813 ctl->zsctl_proc_stat_next; in zsd_refresh_procs()
2815 ctl->zsctl_proc_fd_next = -1; in zsd_refresh_procs()
2816 ctl->zsctl_proc_open_next = 0; in zsd_refresh_procs()
2837 ret = ea_get_object(&ctl->zsctl_proc_eaf, in zsd_refresh_procs()
2857 proc = &(ctl->zsctl_proc_array[pid]); in zsd_refresh_procs()
2867 pproc = &(ctl->zsctl_proc_array[ppid]); in zsd_refresh_procs()
2871 zone = zsd_lookup_zone(ctl, in zsd_refresh_procs()
2953 pset = zsd_lookup_pset_byid(ctl, prev_psetid); in zsd_refresh_procs()
2958 pset = zsd_lookup_pset_byid(ctl, prev_psetid); in zsd_refresh_procs()
2977 usage = zsd_lookup_insert_usage(ctl, pset, zone); in zsd_refresh_procs()
2989 zsd_add_usage(ctl, usage, &delta); in zsd_refresh_procs()
2999 if (ctl->zsctl_proc_open_next) { in zsd_refresh_procs()
3001 &ctl->zsctl_proc_eaf_next); in zsd_refresh_procs()
3002 ctl->zsctl_proc_open_next = 0; in zsd_refresh_procs()
3003 ctl->zsctl_proc_fd_next = -1; in zsd_refresh_procs()
3021 pproc = &(ctl->zsctl_proc_array[next->zspr_ppid]); in zsd_refresh_procs()
3043 zone = zsd_lookup_zone_byid(ctl, in zsd_refresh_procs()
3052 pset = zsd_lookup_pset_byid(ctl, in zsd_refresh_procs()
3062 usage = zsd_lookup_insert_usage(ctl, pset, zone); in zsd_refresh_procs()
3071 zsd_add_usage(ctl, usage, &proc->zspr_usage); in zsd_refresh_procs()
3087 zone = zsd_lookup_zone_byid(ctl, proc->zspr_zoneid); in zsd_refresh_procs()
3093 pset = zsd_lookup_pset_byid(ctl, prev_psetid); in zsd_refresh_procs()
3095 pset = zsd_lookup_pset(ctl, zone->zsz_pset, -1); in zsd_refresh_procs()
3118 usage = zsd_lookup_insert_usage(ctl, pset, zone); in zsd_refresh_procs()
3123 zsd_add_usage(ctl, usage, &proc->zspr_usage); in zsd_refresh_procs()
3136 if (ctl->zsctl_proc_open_next) { in zsd_refresh_procs()
3137 (void) ea_close(&ctl->zsctl_proc_eaf_next); in zsd_refresh_procs()
3138 ctl->zsctl_proc_open_next = 0; in zsd_refresh_procs()
3139 ctl->zsctl_proc_fd_next = -1; in zsd_refresh_procs()
3150 zsd_getvmusage(zsd_ctl_t *ctl, uint_t flags, time_t age, zsd_vmusage64_t *buf, in zsd_getvmusage() argument
3159 if (ctl->zsctl_kern_bits == 32) { in zsd_getvmusage()
3205 zsd_refresh_memory(zsd_ctl_t *ctl, boolean_t init) in zsd_refresh_memory() argument
3249 sys = ctl->zsctl_system; in zsd_refresh_memory()
3262 if (num_swap_devices > ctl->zsctl_swap_cache_num) { in zsd_refresh_memory()
3266 if (ctl->zsctl_swap_cache != NULL) in zsd_refresh_memory()
3267 free(ctl->zsctl_swap_cache); in zsd_refresh_memory()
3290 ctl->zsctl_swap_cache = swt; in zsd_refresh_memory()
3291 ctl->zsctl_swap_cache_size = swt_size; in zsd_refresh_memory()
3292 ctl->zsctl_swap_cache_num = num_swap_devices; in zsd_refresh_memory()
3294 num_swap_devices = swapctl(SC_LIST, ctl->zsctl_swap_cache); in zsd_refresh_memory()
3310 swent = ctl->zsctl_swap_cache->swt_ent; in zsd_refresh_memory()
3315 disk_swap_total *= ctl->zsctl_pagesize; in zsd_refresh_memory()
3316 disk_swap_used *= ctl->zsctl_pagesize; in zsd_refresh_memory()
3325 kstat = kstat_lookup(ctl->zsctl_kstat_ctl, "unix", 0, "system_pages"); in zsd_refresh_memory()
3329 kid = kstat_read(ctl->zsctl_kstat_ctl, kstat, NULL); in zsd_refresh_memory()
3358 physmem *= ctl->zsctl_pagesize; in zsd_refresh_memory()
3359 pp_kernel *= ctl->zsctl_pagesize; in zsd_refresh_memory()
3364 kstat = kstat_lookup(ctl->zsctl_kstat_ctl, "zfs", 0, "arcstats"); in zsd_refresh_memory()
3366 kid = kstat_read(ctl->zsctl_kstat_ctl, kstat, NULL); in zsd_refresh_memory()
3382 vmusage = ctl->zsctl_vmusage_cache; in zsd_refresh_memory()
3383 num_vmusage = ctl->zsctl_vmusage_cache_num; in zsd_refresh_memory()
3385 ret = zsd_getvmusage(ctl, VMUSAGE_SYSTEM | VMUSAGE_ALL_ZONES, 0, in zsd_refresh_memory()
3398 if (num_vmusage > ctl->zsctl_vmusage_cache_num) { in zsd_refresh_memory()
3402 if (ctl->zsctl_vmusage_cache != NULL) in zsd_refresh_memory()
3403 free(ctl->zsctl_vmusage_cache); in zsd_refresh_memory()
3411 ctl->zsctl_vmusage_cache = vmusage; in zsd_refresh_memory()
3412 ctl->zsctl_vmusage_cache_num = num_vmusage; in zsd_refresh_memory()
3428 zone = zsd_lookup_zone_byid(ctl, vmusage[i].vmu_id); in zsd_refresh_memory()
3449 for (zone = list_head(&ctl->zsctl_zones); zone != NULL; in zsd_refresh_memory()
3450 zone = list_next(&ctl->zsctl_zones, zone)) { in zsd_refresh_memory()
3474 kstat = kstat_lookup(ctl->zsctl_kstat_ctl, "caps", in zsd_refresh_memory()
3477 kid = kstat_read(ctl->zsctl_kstat_ctl, kstat, NULL); in zsd_refresh_memory()
3494 kstat = kstat_lookup(ctl->zsctl_kstat_ctl, "caps", in zsd_refresh_memory()
3497 kid = kstat_read(ctl->zsctl_kstat_ctl, kstat, NULL); in zsd_refresh_memory()
3519 sysconf(_SC_PHYS_PAGES) * ctl->zsctl_pagesize; in zsd_refresh_memory()
3522 * ctl->zsctl_pagesize; in zsd_refresh_memory()
3544 vm_free = (ani.ani_max - ani.ani_resv) * ctl->zsctl_pagesize; in zsd_refresh_memory()
3555 zsd_refresh_cpu_stats(zsd_ctl_t *ctl, boolean_t init) in zsd_refresh_cpu_stats() argument
3568 cpu_next = list_head(&ctl->zsctl_cpus); in zsd_refresh_cpu_stats()
3571 cpu_next = list_next(&ctl->zsctl_cpus, cpu); in zsd_refresh_cpu_stats()
3572 zsd_update_cpu_stats(ctl, cpu); in zsd_refresh_cpu_stats()
3578 ctl->zsctl_hrtime = hrtime; in zsd_refresh_cpu_stats()
3579 ctl->zsctl_hrtime_prev = hrtime; in zsd_refresh_cpu_stats()
3583 ctl->zsctl_hrtime_prev = ctl->zsctl_hrtime; in zsd_refresh_cpu_stats()
3584 ctl->zsctl_hrtime = hrtime; in zsd_refresh_cpu_stats()
3585 if ((hrtime = hrtime - ctl->zsctl_hrtime_prev) > 0) in zsd_refresh_cpu_stats()
3586 TIMESTRUC_ADD_NANOSEC(ctl->zsctl_hrtime_total, hrtime); in zsd_refresh_cpu_stats()
3593 for (pset = list_head(&ctl->zsctl_psets); pset != NULL; in zsd_refresh_cpu_stats()
3594 pset = list_next(&ctl->zsctl_psets, pset)) { in zsd_refresh_cpu_stats()
3647 for (zone = list_head(&ctl->zsctl_zones); zone != NULL; in zsd_refresh_cpu_stats()
3648 zone = list_next(&ctl->zsctl_zones, zone)) { in zsd_refresh_cpu_stats()
3654 elapsed = ctl->zsctl_hrtime - ctl->zsctl_hrtime_prev; in zsd_refresh_cpu_stats()
3660 sys = ctl->zsctl_system; in zsd_refresh_cpu_stats()
3689 zsd_usage_cache_update(zsd_ctl_t *ctl) in zsd_usage_cache_update() argument
3711 sizeof (zs_zone_t) * ctl->zsctl_nzones + in zsd_usage_cache_update()
3712 sizeof (zs_pset_t) * ctl->zsctl_npsets + in zsd_usage_cache_update()
3713 sizeof (zs_pset_zone_t) * ctl->zsctl_npset_usages; in zsd_usage_cache_update()
3732 usage->zsu_nzones = ctl->zsctl_nzones; in zsd_usage_cache_update()
3733 usage->zsu_npsets = ctl->zsctl_npsets; in zsd_usage_cache_update()
3739 dsys = ctl->zsctl_system; in zsd_usage_cache_update()
3773 for (i = 0, dzone = list_head(&ctl->zsctl_zones); in zsd_usage_cache_update()
3774 i < ctl->zsctl_nzones; in zsd_usage_cache_update()
3775 i++, dzone = list_next(&ctl->zsctl_zones, dzone)) { in zsd_usage_cache_update()
3825 for (i = 0, dpset = list_head(&ctl->zsctl_psets); in zsd_usage_cache_update()
3826 i < ctl->zsctl_npsets; in zsd_usage_cache_update()
3827 i++, dpset = list_next(&ctl->zsctl_psets, dpset)) { in zsd_usage_cache_update()
3913 zsd_close(zsd_ctl_t *ctl) in zsd_close() argument
3921 if (ctl->zsctl_kstat_ctl) { in zsd_close()
3922 (void) kstat_close(ctl->zsctl_kstat_ctl); in zsd_close()
3923 ctl->zsctl_kstat_ctl = NULL; in zsd_close()
3925 if (ctl->zsctl_proc_open) { in zsd_close()
3926 (void) ea_close(&ctl->zsctl_proc_eaf); in zsd_close()
3927 ctl->zsctl_proc_open = 0; in zsd_close()
3928 ctl->zsctl_proc_fd = -1; in zsd_close()
3930 if (ctl->zsctl_pool_conf) { in zsd_close()
3931 if (ctl->zsctl_pool_status == POOL_ENABLED) in zsd_close()
3932 (void) pool_conf_close(ctl->zsctl_pool_conf); in zsd_close()
3933 ctl->zsctl_pool_status = POOL_DISABLED; in zsd_close()
3936 while ((zone = list_head(&ctl->zsctl_zones)) != NULL) { in zsd_close()
3937 list_remove(&ctl->zsctl_zones, zone); in zsd_close()
3939 ctl->zsctl_nzones--; in zsd_close()
3942 while ((pset = list_head(&ctl->zsctl_psets)) != NULL) { in zsd_close()
3946 ctl->zsctl_npset_usages--; in zsd_close()
3949 list_remove(&ctl->zsctl_psets, pset); in zsd_close()
3951 ctl->zsctl_npsets--; in zsd_close()
3955 while (cpu = list_head(&ctl->zsctl_cpus)) { in zsd_close()
3956 list_remove(&ctl->zsctl_cpus, cpu); in zsd_close()
3965 assert(ctl->zsctl_npset_usages == 0); in zsd_close()
3966 assert(ctl->zsctl_npsets == 0); in zsd_close()
3967 assert(ctl->zsctl_nzones == 0); in zsd_close()
3976 zsd_read(zsd_ctl_t *ctl, boolean_t init, boolean_t do_memory) in zsd_read() argument
3978 (void) kstat_chain_update(ctl->zsctl_kstat_ctl); in zsd_read()
3979 (void) gettimeofday(&(ctl->zsctl_timeofday), NULL); in zsd_read()
3981 zsd_refresh_system(ctl); in zsd_read()
3988 zsd_refresh_memory(ctl, init); in zsd_read()
3989 zsd_refresh_zones(ctl); in zsd_read()
3990 zsd_refresh_psets(ctl); in zsd_read()
3991 zsd_refresh_procs(ctl, init); in zsd_read()
3992 zsd_refresh_cpu_stats(ctl, init); in zsd_read()
3999 zsd_mark_pset_usages_end(ctl); in zsd_read()
4000 zsd_mark_psets_end(ctl); in zsd_read()
4001 zsd_mark_cpus_end(ctl); in zsd_read()
4002 zsd_mark_zones_end(ctl); in zsd_read()
4007 zsd_usage_cache_update(ctl); in zsd_read()
4045 zsd_open(zsd_ctl_t *ctl) in zsd_open() argument
4056 if (ctl == NULL && (ctl = (zsd_ctl_t *)calloc(1, in zsd_open()
4062 ctl->zsctl_proc_fd = -1; in zsd_open()
4065 if (ctl->zsctl_kstat_ctl == NULL && in zsd_open()
4066 (ctl->zsctl_kstat_ctl = kstat_open()) == NULL) { in zsd_open()
4079 ctl->zsctl_proc_fd = -1; in zsd_open()
4080 ctl->zsctl_proc_fd_next = -1; in zsd_open()
4081 ctl->zsctl_proc_open = 0; in zsd_open()
4082 ctl->zsctl_proc_open_next = 0; in zsd_open()
4088 if (ctl->zsctl_system == NULL && (ctl->zsctl_system = (zsd_system_t *) in zsd_open()
4095 system = ctl->zsctl_system; in zsd_open()
4099 ctl->zsctl_kern_bits = 32; in zsd_open()
4101 ctl->zsctl_kern_bits = 64; in zsd_open()
4102 ctl->zsctl_pagesize = sysconf(_SC_PAGESIZE); in zsd_open()
4105 ctl->zsctl_maxcpuid = size; in zsd_open()
4106 if (ctl->zsctl_cpu_array == NULL && (ctl->zsctl_cpu_array = in zsd_open()
4112 for (i = 0; i <= ctl->zsctl_maxcpuid; i++) { in zsd_open()
4113 ctl->zsctl_cpu_array[i].zsc_id = i; in zsd_open()
4114 ctl->zsctl_cpu_array[i].zsc_allocated = B_FALSE; in zsd_open()
4115 ctl->zsctl_cpu_array[i].zsc_psetid = ZS_PSET_ERROR; in zsd_open()
4116 ctl->zsctl_cpu_array[i].zsc_psetid_prev = ZS_PSET_ERROR; in zsd_open()
4126 ctl->zsctl_maxproc = size; in zsd_open()
4127 if (ctl->zsctl_proc_array == NULL && in zsd_open()
4128 (ctl->zsctl_proc_array = (zsd_proc_t *)calloc(size, in zsd_open()
4134 for (i = 0; i <= ctl->zsctl_maxproc; i++) { in zsd_open()
4135 list_link_init(&(ctl->zsctl_proc_array[i].zspr_next)); in zsd_open()
4136 ctl->zsctl_proc_array[i].zspr_psetid = ZS_PSET_ERROR; in zsd_open()
4137 ctl->zsctl_proc_array[i].zspr_zoneid = -1; in zsd_open()
4138 ctl->zsctl_proc_array[i].zspr_usage.tv_sec = 0; in zsd_open()
4139 ctl->zsctl_proc_array[i].zspr_usage.tv_nsec = 0; in zsd_open()
4140 ctl->zsctl_proc_array[i].zspr_ppid = -1; in zsd_open()
4143 list_create(&ctl->zsctl_zones, sizeof (zsd_zone_t), in zsd_open()
4146 list_create(&ctl->zsctl_psets, sizeof (zsd_pset_t), in zsd_open()
4149 list_create(&ctl->zsctl_cpus, sizeof (zsd_cpu_t), in zsd_open()
4152 if (ctl->zsctl_pool_conf == NULL && in zsd_open()
4153 (ctl->zsctl_pool_conf = pool_conf_alloc()) == NULL) { in zsd_open()
4158 ctl->zsctl_pool_status = POOL_DISABLED; in zsd_open()
4159 ctl->zsctl_pool_changed = 0; in zsd_open()
4161 if (ctl->zsctl_pool_vals[0] == NULL && in zsd_open()
4162 (ctl->zsctl_pool_vals[0] = pool_value_alloc()) == NULL) { in zsd_open()
4167 if (ctl->zsctl_pool_vals[1] == NULL && in zsd_open()
4168 (ctl->zsctl_pool_vals[1] = pool_value_alloc()) == NULL) { in zsd_open()
4173 ctl->zsctl_pool_vals[2] = NULL; in zsd_open()
4189 if (zsd_read(ctl, B_TRUE, B_FALSE) != 0) in zsd_open()
4192 return (ctl); in zsd_open()
4194 if (ctl) in zsd_open()
4195 zsd_close(ctl); in zsd_open()