Lines Matching refs:fsspset

241  * fsspset   |      |       \            \
534 fsspset_t *fsspset = NULL;
544 fsspset = &fsspsets[i];
545 if (fsspset->fssps_cpupart == cpupart) {
546 ASSERT(fsspset->fssps_nproj > 0);
557 fsspset = &fsspsets[i];
558 if (fsspset->fssps_cpupart == NULL) {
559 ASSERT(fsspset->fssps_nproj == 0);
564 fsspset->fssps_cpupart = cpupart;
567 return (fsspset);
571 fss_del_fsspset(fsspset_t *fsspset)
574 ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
575 ASSERT(fsspset->fssps_nproj == 0);
576 ASSERT(fsspset->fssps_list == NULL);
577 ASSERT(fsspset->fssps_zones == NULL);
578 fsspset->fssps_cpupart = NULL;
579 fsspset->fssps_maxfsspri = 0;
580 fsspset->fssps_shares = 0;
585 * belongs to zone "zone" and cpu partition fsspset, if such structure exists.
588 fss_find_fsszone(fsspset_t *fsspset, zone_t *zone)
592 ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
594 if (fsspset->fssps_list != NULL) {
599 fsszone = fsspset->fssps_zones;
605 } while (fsszone != fsspset->fssps_zones);
615 fss_insert_fsszone(fsspset_t *fsspset, zone_t *zone, fsszone_t *fsszone)
617 ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
622 if (fsspset->fssps_zones == NULL) {
624 * This will be the first fsszone for this fsspset
627 fsspset->fssps_zones = fsszone;
632 fsszone_t *fssz_head = fsspset->fssps_zones;
638 fsspset->fssps_zones = fsszone;
650 fss_remove_fsszone(fsspset_t *fsspset, fsszone_t *fsszone)
652 ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
663 if (fsspset->fssps_zones == fsszone)
664 fsspset->fssps_zones = fsszone->fssz_next;
669 fsspset->fssps_zones = NULL;
675 * which belongs to project kpj and cpu partition fsspset, if such structure
679 fss_find_fssproj(fsspset_t *fsspset, kproject_t *kpj)
683 ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
685 if (fsspset->fssps_list != NULL) {
690 fssproj = fsspset->fssps_list;
693 ASSERT(fssproj->fssp_pset == fsspset);
697 } while (fssproj != fsspset->fssps_list);
707 fss_insert_fssproj(fsspset_t *fsspset, kproject_t *kpj, fsszone_t *fsszone,
710 ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
712 fssproj->fssp_pset = fsspset;
716 fsspset->fssps_nproj++;
718 if (fsspset->fssps_list == NULL) {
720 * This will be the first fssproj for this fsspset
723 fsspset->fssps_list = fssproj;
728 fssproj_t *fssp_head = fsspset->fssps_list;
734 fsspset->fssps_list = fssproj;
750 fss_remove_fssproj(fsspset_t *fsspset, fssproj_t *fssproj)
755 ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
758 fsspset->fssps_nproj--;
769 if (fsspset->fssps_list == fssproj)
770 fsspset->fssps_list = fssproj->fssp_next;
772 fss_remove_fsszone(fsspset, fsszone);
778 fsspset->fssps_list = NULL;
779 ASSERT(fsspset->fssps_nproj == 0);
781 fss_remove_fsszone(fsspset, fsszone);
782 fss_del_fsspset(fsspset);
791 fsspset_t *fsspset;
799 fsspset = FSSPROJ2FSSPSET(fssproj);
801 disp_lock_enter_high(&fsspset->fssps_displock);
806 fsspset->fssps_shares -= fsszone->fssz_rshares;
810 disp_lock_exit_high(&fsspset->fssps_displock);
818 fsspset_t *fsspset;
826 fsspset = FSSPROJ2FSSPSET(fssproj);
828 disp_lock_enter_high(&fsspset->fssps_displock);
832 fsspset->fssps_shares += fsszone->fssz_rshares;
836 disp_lock_exit_high(&fsspset->fssps_displock);
933 fsspset_t *fsspset;
956 fsspset = FSSPROJ2FSSPSET(fssproj);
957 disp_lock_enter_high(&fsspset->fssps_displock);
967 disp_lock_exit_high(&fsspset->fssps_displock);
971 maxfsspri = fsspset->fssps_maxfsspri;
1020 fsspset->fssps_maxfsspri = fsspri;
1021 disp_lock_exit_high(&fsspset->fssps_displock);
1024 disp_lock_exit_high(&fsspset->fssps_displock);
1040 fsspset_t *fsspset;
1053 fsspset = &fsspsets[psetid];
1054 mutex_enter(&fsspset->fssps_lock);
1056 fsspset->fssps_gen++;
1058 if (fsspset->fssps_cpupart == NULL ||
1059 (fssproj = fsspset->fssps_list) == NULL) {
1060 mutex_exit(&fsspset->fssps_lock);
1068 disp_lock_enter(&fsspset->fssps_displock);
1070 pset_shares = fsspset->fssps_shares;
1072 maxfsspri = (fsspset->fssps_maxfsspri *
1076 fsspset->fssps_maxfsspri = maxfsspri;
1086 if (fsspset->fssps_gen != zp->zone_fss_gen) {
1087 zp->zone_fss_gen = fsspset->fssps_gen;
1125 fsspset->fssps_shares -=
1127 fsspset->fssps_shares +=
1129 pset_shares = fsspset->fssps_shares;
1240 } while (fssproj != fsspset->fssps_list);
1242 disp_lock_exit(&fsspset->fssps_displock);
1243 mutex_exit(&fsspset->fssps_lock);
1629 fsspset_t *fsspset;
1695 * Put a lock on our fsspset structure.
1698 fsspset = fss_find_fsspset(t->t_cpupart);
1699 mutex_enter(&fsspset->fssps_lock);
1703 if ((fsszone = fss_find_fsszone(fsspset, zone)) == NULL) {
1706 mutex_exit(&fsspset->fssps_lock);
1710 fss_insert_fsszone(fsspset, zone, fsszone);
1714 if ((fssproj = fss_find_fssproj(fsspset, kpj)) == NULL) {
1718 fss_remove_fsszone(fsspset, fsszone);
1721 mutex_exit(&fsspset->fssps_lock);
1724 fss_insert_fssproj(fsspset, kpj, fsszone, fssproj);
1745 mutex_exit(&fsspset->fssps_lock);
1773 fsspset_t *fsspset;
1797 fsspset = FSSPROJ2FSSPSET(fssproj);
1801 disp_lock_enter_high(&fsspset->fssps_displock);
1805 fsspset->fssps_shares -=
1808 disp_lock_exit_high(&fsspset->fssps_displock);
1812 mutex_enter(&fsspset->fssps_lock);
1814 fss_remove_fssproj(fsspset, fssproj);
1819 mutex_exit(&fsspset->fssps_lock);
1860 fsspset_t *fsspset;
1872 fsspset = FSSPROJ2FSSPSET(fssproj);
1875 mutex_enter(&fsspset->fssps_lock);
1898 mutex_exit(&fsspset->fssps_lock);
2072 fsspset_t *fsspset;
2088 fsspset = FSSPROJ2FSSPSET(fssproj);
2092 mutex_enter(&fsspset->fssps_lock);
2095 disp_lock_enter_high(&fsspset->fssps_displock);
2100 fsspset->fssps_shares -= fsszone->fssz_rshares;
2106 fss_remove_fssproj(fsspset, fssproj);
2109 disp_lock_exit_high(&fsspset->fssps_displock);
2118 mutex_exit(&fsspset->fssps_lock);
2485 * It's safe to access fsspset and fssproj structures because we're
2492 fsspset_t *fsspset = FSSPROJ2FSSPSET(fssproj);
2493 disp_lock_enter_high(&fsspset->fssps_displock);
2497 disp_lock_exit_high(&fsspset->fssps_displock);
2808 fsspset_t *fsspset;
2830 fsspset = FSSPROJ2FSSPSET(fssproj_old);
2831 mutex_enter(&fsspset->fssps_lock);
2835 ASSERT(t->t_cpupart == fsspset->fssps_cpupart);
2838 mutex_exit(&fsspset->fssps_lock);
2843 if ((fsszone_new = fss_find_fsszone(fsspset, zone)) == NULL) {
2852 fss_insert_fsszone(fsspset, zone, fsszone_new);
2859 if ((fssproj_new = fss_find_fssproj(fsspset, kpj_new)) == NULL) {
2869 fss_insert_fssproj(fsspset, kpj_new,
2884 fss_remove_fssproj(fsspset, fssproj_old);
2900 mutex_exit(&fsspset->fssps_lock);