Lines Matching refs:srdp
113 #define SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid) \ argument
121 ASSERT((srdp)->srd_refcnt != 0); \
146 #define SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid) argument
2133 sf_srd_t *srdp; in hat_dup() local
2149 if (flag == HAT_DUP_SRD && ((srdp = hat->sfmmu_srdp) != NULL)) { in hat_dup()
2150 ASSERT(srdp->srd_evp != NULL); in hat_dup()
2151 VN_HOLD(srdp->srd_evp); in hat_dup()
2152 ASSERT(srdp->srd_refcnt > 0); in hat_dup()
2153 newhat->sfmmu_srdp = srdp; in hat_dup()
2154 atomic_inc_32((volatile uint_t *)&srdp->srd_refcnt); in hat_dup()
2160 if (flag == HAT_DUP_ALL && ((srdp = newhat->sfmmu_srdp) != NULL)) { in hat_dup()
3267 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in sfmmu_tteload_addentry() local
3268 sf_region_t *rgnp = srdp->srd_hmergnp[rid]; in sfmmu_tteload_addentry()
3806 sfmmu_cleanup_rhblk(sf_srd_t *srdp, caddr_t addr, uint_t rid, int ttesz) in sfmmu_cleanup_rhblk() argument
3822 hblktag.htag_id = srdp; in sfmmu_cleanup_rhblk()
3823 hmebp = HME_HASH_FUNCTION(srdp, addr, hmeshift); in sfmmu_cleanup_rhblk()
3853 sfmmu_unload_hmeregion_va(sf_srd_t *srdp, uint_t rid, caddr_t addr, in sfmmu_unload_hmeregion_va() argument
3871 hblktag.htag_id = srdp; in sfmmu_unload_hmeregion_va()
3872 hmebp = HME_HASH_FUNCTION(srdp, addr, hmeshift); in sfmmu_unload_hmeregion_va()
3893 sfmmu_unload_hmeregion(sf_srd_t *srdp, sf_region_t *rgnp) in sfmmu_unload_hmeregion() argument
3944 sfmmu_unload_hmeregion_va(srdp, rid, va, readdr, in sfmmu_unload_hmeregion()
4037 sf_srd_t *srdp; in hat_unlock_region() local
4059 srdp = sfmmup->sfmmu_srdp; in hat_unlock_region()
4065 rgnp = srdp->srd_hmergnp[rid]; in hat_unlock_region()
4089 hblktag.htag_id = srdp; in hat_unlock_region()
4090 hmebp = HME_HASH_FUNCTION(srdp, va, hmeshift); in hat_unlock_region()
7335 sf_srd_t *srdp = (sf_srd_t *)sfmmup; in sfmmu_pageunload() local
7340 ASSERT(srdp != NULL); in sfmmu_pageunload()
7341 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_pageunload()
7342 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid); in sfmmu_pageunload()
7559 sf_srd_t *srdp = hblktosrd(hmeblkp); in hat_pagesync() local
7564 ASSERT(srdp != NULL); in hat_pagesync()
7565 rgnp = srdp->srd_hmergnp[rid]; in hat_pagesync()
7566 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, in hat_pagesync()
7659 sf_srd_t *srdp = (sf_srd_t *)sfmmup; in sfmmu_pagesync() local
7665 ASSERT(srdp != NULL); in sfmmu_pagesync()
7666 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_pagesync()
7668 srdp, rgnp, rid); in sfmmu_pagesync()
7736 sf_srd_t *srdp = (sf_srd_t *)sfmmup; in sfmmu_pageclrwrt() local
7741 ASSERT(srdp != NULL); in sfmmu_pageclrwrt()
7742 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_pageclrwrt()
7744 srdp, rgnp, rid); in sfmmu_pageclrwrt()
8029 sf_srd_t *srdp; in sfmmu_uvatopfn() local
8093 srdp = sv_sfmmup->sfmmu_srdp; in sfmmu_uvatopfn()
8094 ASSERT(srdp != NULL); in sfmmu_uvatopfn()
8095 ASSERT(srdp->srd_refcnt != 0); in sfmmu_uvatopfn()
8096 hblktag.htag_id = srdp; in sfmmu_uvatopfn()
8102 hmebp = HME_HASH_FUNCTION(srdp, sv_vaddr, hmeshift); in sfmmu_uvatopfn()
8120 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_uvatopfn()
8121 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid); in sfmmu_uvatopfn()
8273 sf_srd_t *srdp = hblktosrd(hmeblkp); in hat_page_checkshare() local
8278 ASSERT(srdp != NULL); in hat_page_checkshare()
8279 rgnp = srdp->srd_hmergnp[rid]; in hat_page_checkshare()
8280 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, in hat_page_checkshare()
9692 sf_srd_t *srdp = (sf_srd_t *)sfmmup; in sfmmu_page_cache() local
9697 ASSERT(srdp != NULL); in sfmmu_page_cache()
9698 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_page_cache()
9700 srdp, rgnp, rid); in sfmmu_page_cache()
9727 sf_srd_t *srdp = (sf_srd_t *)sfmmup; in sfmmu_page_cache() local
9732 ASSERT(srdp != NULL); in sfmmu_page_cache()
9733 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_page_cache()
9735 srdp, rgnp, rid); in sfmmu_page_cache()
10203 sfmmu_set_scd_rttecnt(sf_srd_t *srdp, sf_scd_t *scdp) in sfmmu_set_scd_rttecnt() argument
10210 ASSERT(srdp != NULL); in sfmmu_set_scd_rttecnt()
10230 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_set_scd_rttecnt()
11123 sf_srd_t *srdp; in sfmmu_hblk_alloc() local
11202 srdp = sfmmup->sfmmu_srdp; in sfmmu_hblk_alloc()
11203 ASSERT(srdp != NULL && srdp->srd_refcnt != 0); in sfmmu_hblk_alloc()
11204 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_hblk_alloc()
11216 sfmmu_cleanup_rhblk(srdp, vaddr, rid, ttesz); in sfmmu_hblk_alloc()
11220 sfmmu_cleanup_rhblk(srdp, va, rid, in sfmmu_hblk_alloc()
11689 sf_srd_t *srdp; in sfmmu_steal_this_hblk() local
11693 srdp = hblktosrd(hmeblkp); in sfmmu_steal_this_hblk()
11694 ASSERT(srdp != NULL && srdp->srd_refcnt != 0); in sfmmu_steal_this_hblk()
11698 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_steal_this_hblk()
11700 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid); in sfmmu_steal_this_hblk()
11821 sfmmu_is_rgnva(sf_srd_t *srdp, caddr_t addr, ulong_t w, ulong_t bmw) in sfmmu_is_rgnva() argument
11827 ASSERT(srdp != NULL); in sfmmu_is_rgnva()
11828 ASSERT(srdp->srd_refcnt != 0); in sfmmu_is_rgnva()
11838 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_is_rgnva()
13791 sf_srd_t *srdp; in hat_join_srd() local
13805 for (srdp = srd_buckets[hash].srdb_srdp; srdp != NULL; in hat_join_srd()
13806 srdp = srdp->srd_hash) { in hat_join_srd()
13807 if (srdp->srd_evp == evp) { in hat_join_srd()
13808 ASSERT(srdp->srd_refcnt >= 0); in hat_join_srd()
13809 sfmmup->sfmmu_srdp = srdp; in hat_join_srd()
13811 (volatile uint_t *)&srdp->srd_refcnt); in hat_join_srd()
13827 for (srdp = srd_buckets[hash].srdb_srdp; srdp != NULL; in hat_join_srd()
13828 srdp = srdp->srd_hash) { in hat_join_srd()
13829 if (srdp->srd_evp == evp) { in hat_join_srd()
13830 ASSERT(srdp->srd_refcnt >= 0); in hat_join_srd()
13831 sfmmup->sfmmu_srdp = srdp; in hat_join_srd()
13832 atomic_inc_32((volatile uint_t *)&srdp->srd_refcnt); in hat_join_srd()
13850 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in sfmmu_leave_srd() local
13861 ASSERT(srdp != NULL); in sfmmu_leave_srd()
13862 ASSERT(srdp->srd_refcnt > 0); in sfmmu_leave_srd()
13867 evp = srdp->srd_evp; in sfmmu_leave_srd()
13869 if (atomic_dec_32_nv((volatile uint_t *)&srdp->srd_refcnt)) { in sfmmu_leave_srd()
13877 (srdp = *prev_srdpp) != NULL; prev_srdpp = &srdp->srd_hash) { in sfmmu_leave_srd()
13878 if (srdp->srd_evp == evp) { in sfmmu_leave_srd()
13882 if (srdp == NULL || srdp->srd_refcnt) { in sfmmu_leave_srd()
13887 *prev_srdpp = srdp->srd_hash; in sfmmu_leave_srd()
13890 ASSERT(srdp->srd_refcnt == 0); in sfmmu_leave_srd()
13895 ASSERT(srdp->srd_rgnhash[i] == NULL); in sfmmu_leave_srd()
13900 for (rgnp = srdp->srd_hmergnfree; rgnp != NULL; rgnp = nrgnp) { in sfmmu_leave_srd()
13902 ASSERT(rgnp->rgn_id < srdp->srd_next_hmerid); in sfmmu_leave_srd()
13907 ASSERT(srdp->srd_hmergnp[rgnp->rgn_id] == rgnp); in sfmmu_leave_srd()
13916 ASSERT(rgns == srdp->srd_next_hmerid); in sfmmu_leave_srd()
13922 for (rgnp = srdp->srd_ismrgnfree; rgnp != NULL; rgnp = nrgnp) { in sfmmu_leave_srd()
13924 ASSERT(rgnp->rgn_id < srdp->srd_next_ismrid); in sfmmu_leave_srd()
13928 ASSERT(srdp->srd_ismrgnp[rgnp->rgn_id] == rgnp); in sfmmu_leave_srd()
13937 ASSERT(rgns == srdp->srd_next_ismrid); in sfmmu_leave_srd()
13938 ASSERT(srdp->srd_ismbusyrgns == 0); in sfmmu_leave_srd()
13939 ASSERT(srdp->srd_hmebusyrgns == 0); in sfmmu_leave_srd()
13941 srdp->srd_next_ismrid = 0; in sfmmu_leave_srd()
13942 srdp->srd_next_hmerid = 0; in sfmmu_leave_srd()
13944 bzero((void *)srdp->srd_ismrgnp, in sfmmu_leave_srd()
13946 bzero((void *)srdp->srd_hmergnp, in sfmmu_leave_srd()
13949 ASSERT(srdp->srd_scdp == NULL); in sfmmu_leave_srd()
13950 kmem_cache_free(srd_cache, srdp); in sfmmu_leave_srd()
13957 sf_srd_t *srdp = (sf_srd_t *)buf; in sfmmu_srdcache_constructor() local
13958 bzero(buf, sizeof (*srdp)); in sfmmu_srdcache_constructor()
13960 mutex_init(&srdp->srd_mutex, NULL, MUTEX_DEFAULT, NULL); in sfmmu_srdcache_constructor()
13961 mutex_init(&srdp->srd_scd_mutex, NULL, MUTEX_DEFAULT, NULL); in sfmmu_srdcache_constructor()
13969 sf_srd_t *srdp = (sf_srd_t *)buf; in sfmmu_srdcache_destructor() local
13971 mutex_destroy(&srdp->srd_mutex); in sfmmu_srdcache_destructor()
13972 mutex_destroy(&srdp->srd_scd_mutex); in sfmmu_srdcache_destructor()
14005 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in hat_join_region() local
14022 if (srdp == NULL || r_size == 0) { in hat_join_region()
14029 ASSERT(srdp->srd_refcnt > 0); in hat_join_region()
14045 if (r_type == SFMMU_REGION_HME && ((r_obj != srdp->srd_evp) || in hat_join_region()
14053 nextidp = &srdp->srd_next_ismrid; in hat_join_region()
14054 freelistp = &srdp->srd_ismrgnfree; in hat_join_region()
14056 rarrp = srdp->srd_ismrgnp; in hat_join_region()
14057 busyrgnsp = &srdp->srd_ismbusyrgns; in hat_join_region()
14059 nextidp = &srdp->srd_next_hmerid; in hat_join_region()
14060 freelistp = &srdp->srd_hmergnfree; in hat_join_region()
14062 rarrp = srdp->srd_hmergnp; in hat_join_region()
14063 busyrgnsp = &srdp->srd_hmebusyrgns; in hat_join_region()
14066 mutex_enter(&srdp->srd_mutex); in hat_join_region()
14068 for (rgnp = srdp->srd_rgnhash[rhash]; rgnp != NULL; in hat_join_region()
14087 mutex_exit(&srdp->srd_mutex); in hat_join_region()
14200 mutex_exit(&srdp->srd_mutex); in hat_join_region()
14204 ASSERT(MUTEX_HELD(&srdp->srd_mutex)); in hat_join_region()
14219 mutex_exit(&srdp->srd_mutex); in hat_join_region()
14223 mutex_enter(&srdp->srd_mutex); in hat_join_region()
14224 for (rgnp = srdp->srd_rgnhash[rhash]; rgnp != NULL; in hat_join_region()
14240 mutex_exit(&srdp->srd_mutex); in hat_join_region()
14267 rgnp->rgn_hash = srdp->srd_rgnhash[rhash]; in hat_join_region()
14268 srdp->srd_rgnhash[rhash] = rgnp; in hat_join_region()
14292 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in hat_leave_region() local
14309 ASSERT(srdp != NULL); in hat_leave_region()
14310 ASSERT(srdp->srd_refcnt > 0); in hat_leave_region()
14321 rgnp = srdp->srd_ismrgnp[rid]; in hat_leave_region()
14325 rgnp = srdp->srd_hmergnp[rid]; in hat_leave_region()
14359 ASSERT(rid < srdp->srd_next_ismrid); in hat_leave_region()
14377 ASSERT(rid < srdp->srd_next_hmerid); in hat_leave_region()
14444 mutex_enter(&srdp->srd_mutex); in hat_leave_region()
14445 for (prev_rgnpp = &srdp->srd_rgnhash[rhash]; in hat_leave_region()
14454 mutex_exit(&srdp->srd_mutex); in hat_leave_region()
14462 ASSERT(rid < srdp->srd_next_ismrid); in hat_leave_region()
14463 rgnp->rgn_next = srdp->srd_ismrgnfree; in hat_leave_region()
14464 srdp->srd_ismrgnfree = rgnp; in hat_leave_region()
14465 ASSERT(srdp->srd_ismbusyrgns > 0); in hat_leave_region()
14466 srdp->srd_ismbusyrgns--; in hat_leave_region()
14467 mutex_exit(&srdp->srd_mutex); in hat_leave_region()
14470 mutex_exit(&srdp->srd_mutex); in hat_leave_region()
14475 sfmmu_unload_hmeregion(srdp, rgnp); in hat_leave_region()
14485 mutex_enter(&srdp->srd_mutex); in hat_leave_region()
14486 ASSERT(rid < srdp->srd_next_hmerid); in hat_leave_region()
14487 rgnp->rgn_next = srdp->srd_hmergnfree; in hat_leave_region()
14488 srdp->srd_hmergnfree = rgnp; in hat_leave_region()
14489 ASSERT(srdp->srd_hmebusyrgns > 0); in hat_leave_region()
14490 srdp->srd_hmebusyrgns--; in hat_leave_region()
14491 mutex_exit(&srdp->srd_mutex); in hat_leave_region()
14500 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in hat_dup_region() local
14508 ASSERT(srdp != NULL); in hat_dup_region()
14509 ASSERT(srdp->srd_refcnt > 0); in hat_dup_region()
14511 ASSERT(rid < srdp->srd_next_hmerid); in hat_dup_region()
14515 rgnp = srdp->srd_hmergnp[rid]; in hat_dup_region()
14609 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in check_scd_sfmmu_list() local
14612 ASSERT(srdp == sp->sfmmu_srdp); in check_scd_sfmmu_list()
14705 sfmmu_alloc_scd_tsbs(sf_srd_t *srdp, sf_scd_t *scdp) in sfmmu_alloc_scd_tsbs() argument
14720 ASSERT(srdp != NULL); in sfmmu_alloc_scd_tsbs()
14738 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_alloc_scd_tsbs()
14759 rgnp = srdp->srd_ismrgnp[rid]; in sfmmu_alloc_scd_tsbs()
14951 sfmmu_link_scd_to_regions(sf_srd_t *srdp, sf_scd_t *scdp) in sfmmu_link_scd_to_regions() argument
14978 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_link_scd_to_regions()
14986 rgnp = srdp->srd_ismrgnp[rid]; in sfmmu_link_scd_to_regions()
15008 sfmmu_unlink_scd_from_regions(sf_srd_t *srdp, sf_scd_t *scdp) in sfmmu_unlink_scd_from_regions() argument
15034 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_unlink_scd_from_regions()
15044 rgnp = srdp->srd_ismrgnp[rid]; in sfmmu_unlink_scd_from_regions()
15068 sfmmu_alloc_scd(sf_srd_t *srdp, sf_region_map_t *new_map) in sfmmu_alloc_scd() argument
15074 ASSERT(MUTEX_HELD(&srdp->srd_scd_mutex)); in sfmmu_alloc_scd()
15079 scsfmmup->sfmmu_srdp = srdp; in sfmmu_alloc_scd()
15098 if (sfmmu_alloc_scd_tsbs(srdp, new_scdp) != TSB_SUCCESS) { in sfmmu_alloc_scd()
15120 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in sfmmu_join_scd() local
15124 ASSERT(srdp != NULL); in sfmmu_join_scd()
15189 SF_SCD_DECR_REF(srdp, old_scdp); in sfmmu_join_scd()
15234 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in sfmmu_find_scd() local
15238 ASSERT(srdp != NULL); in sfmmu_find_scd()
15241 mutex_enter(&srdp->srd_scd_mutex); in sfmmu_find_scd()
15242 for (scdp = srdp->srd_scdp; scdp != NULL; in sfmmu_find_scd()
15248 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_find_scd()
15263 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_find_scd()
15273 if ((new_scdp = sfmmu_alloc_scd(srdp, &sfmmup->sfmmu_region_map)) == in sfmmu_find_scd()
15275 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_find_scd()
15284 sfmmu_set_scd_rttecnt(srdp, new_scdp); in sfmmu_find_scd()
15289 sfmmu_link_scd_to_regions(srdp, new_scdp); in sfmmu_find_scd()
15290 sfmmu_add_scd(&srdp->srd_scdp, new_scdp); in sfmmu_find_scd()
15293 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_find_scd()
15308 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in sfmmu_leave_scd() local
15313 ASSERT(srdp != NULL); in sfmmu_leave_scd()
15336 SF_SCD_DECR_REF(srdp, scdp); in sfmmu_leave_scd()
15420 SF_SCD_DECR_REF(srdp, scdp); in sfmmu_leave_scd()
15429 sfmmu_destroy_scd(sf_srd_t *srdp, sf_scd_t *scdp, sf_region_map_t *scd_rmap) in sfmmu_destroy_scd() argument
15436 mutex_enter(&srdp->srd_scd_mutex); in sfmmu_destroy_scd()
15437 for (sp = srdp->srd_scdp; sp != NULL; sp = sp->scd_next) { in sfmmu_destroy_scd()
15442 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_destroy_scd()
15452 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_destroy_scd()
15460 sfmmu_remove_scd(&srdp->srd_scdp, scdp); in sfmmu_destroy_scd()
15461 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_destroy_scd()
15463 sfmmu_unlink_scd_from_regions(srdp, scdp); in sfmmu_destroy_scd()
15536 sfmmu_srd_lock_held(sf_srd_t *srdp) in sfmmu_srd_lock_held() argument
15538 return (MUTEX_HELD(&srdp->srd_mutex)); in sfmmu_srd_lock_held()
15761 sf_srd_t *srdp; in sfmmu_hblk_hash_rm() local
15765 srdp = hblktosrd(hmeblkp); in sfmmu_hblk_hash_rm()
15766 ASSERT(srdp != NULL && srdp->srd_refcnt != 0); in sfmmu_hblk_hash_rm()
15770 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_hblk_hash_rm()
15772 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid); in sfmmu_hblk_hash_rm()