Lines Matching refs:srdp

114 #define	SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid)		\  argument
122 ASSERT((srdp)->srd_refcnt != 0); \
147 #define SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid) argument
2125 sf_srd_t *srdp; in hat_dup() local
2140 if (flag == HAT_DUP_SRD && ((srdp = hat->sfmmu_srdp) != NULL)) { in hat_dup()
2141 ASSERT(srdp->srd_evp != NULL); in hat_dup()
2142 VN_HOLD(srdp->srd_evp); in hat_dup()
2143 ASSERT(srdp->srd_refcnt > 0); in hat_dup()
2144 newhat->sfmmu_srdp = srdp; in hat_dup()
2145 atomic_inc_32((volatile uint_t *)&srdp->srd_refcnt); in hat_dup()
2151 if (flag == HAT_DUP_ALL && ((srdp = newhat->sfmmu_srdp) != NULL)) { in hat_dup()
3238 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in sfmmu_tteload_addentry() local
3239 sf_region_t *rgnp = srdp->srd_hmergnp[rid]; in sfmmu_tteload_addentry()
3777 sfmmu_cleanup_rhblk(sf_srd_t *srdp, caddr_t addr, uint_t rid, int ttesz) in sfmmu_cleanup_rhblk() argument
3793 hblktag.htag_id = srdp; in sfmmu_cleanup_rhblk()
3794 hmebp = HME_HASH_FUNCTION(srdp, addr, hmeshift); in sfmmu_cleanup_rhblk()
3824 sfmmu_unload_hmeregion_va(sf_srd_t *srdp, uint_t rid, caddr_t addr, in sfmmu_unload_hmeregion_va() argument
3842 hblktag.htag_id = srdp; in sfmmu_unload_hmeregion_va()
3843 hmebp = HME_HASH_FUNCTION(srdp, addr, hmeshift); in sfmmu_unload_hmeregion_va()
3864 sfmmu_unload_hmeregion(sf_srd_t *srdp, sf_region_t *rgnp) in sfmmu_unload_hmeregion() argument
3915 sfmmu_unload_hmeregion_va(srdp, rid, va, readdr, in sfmmu_unload_hmeregion()
4007 sf_srd_t *srdp; in hat_unlock_region() local
4028 srdp = sfmmup->sfmmu_srdp; in hat_unlock_region()
4034 rgnp = srdp->srd_hmergnp[rid]; in hat_unlock_region()
4058 hblktag.htag_id = srdp; in hat_unlock_region()
4059 hmebp = HME_HASH_FUNCTION(srdp, va, hmeshift); in hat_unlock_region()
7204 sf_srd_t *srdp = (sf_srd_t *)sfmmup; in sfmmu_pageunload() local
7209 ASSERT(srdp != NULL); in sfmmu_pageunload()
7210 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_pageunload()
7211 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid); in sfmmu_pageunload()
7426 sf_srd_t *srdp = hblktosrd(hmeblkp); in hat_pagesync() local
7431 ASSERT(srdp != NULL); in hat_pagesync()
7432 rgnp = srdp->srd_hmergnp[rid]; in hat_pagesync()
7433 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, in hat_pagesync()
7526 sf_srd_t *srdp = (sf_srd_t *)sfmmup; in sfmmu_pagesync() local
7532 ASSERT(srdp != NULL); in sfmmu_pagesync()
7533 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_pagesync()
7535 srdp, rgnp, rid); in sfmmu_pagesync()
7597 sf_srd_t *srdp = (sf_srd_t *)sfmmup; in sfmmu_pageclrwrt() local
7602 ASSERT(srdp != NULL); in sfmmu_pageclrwrt()
7603 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_pageclrwrt()
7605 srdp, rgnp, rid); in sfmmu_pageclrwrt()
7888 sf_srd_t *srdp; in sfmmu_uvatopfn() local
7952 srdp = sv_sfmmup->sfmmu_srdp; in sfmmu_uvatopfn()
7953 ASSERT(srdp != NULL); in sfmmu_uvatopfn()
7954 ASSERT(srdp->srd_refcnt != 0); in sfmmu_uvatopfn()
7955 hblktag.htag_id = srdp; in sfmmu_uvatopfn()
7961 hmebp = HME_HASH_FUNCTION(srdp, sv_vaddr, hmeshift); in sfmmu_uvatopfn()
7979 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_uvatopfn()
7980 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid); in sfmmu_uvatopfn()
8123 sf_srd_t *srdp = hblktosrd(hmeblkp); in hat_page_checkshare() local
8128 ASSERT(srdp != NULL); in hat_page_checkshare()
8129 rgnp = srdp->srd_hmergnp[rid]; in hat_page_checkshare()
8130 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, in hat_page_checkshare()
9507 sf_srd_t *srdp = (sf_srd_t *)sfmmup; in sfmmu_page_cache() local
9512 ASSERT(srdp != NULL); in sfmmu_page_cache()
9513 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_page_cache()
9515 srdp, rgnp, rid); in sfmmu_page_cache()
9542 sf_srd_t *srdp = (sf_srd_t *)sfmmup; in sfmmu_page_cache() local
9547 ASSERT(srdp != NULL); in sfmmu_page_cache()
9548 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_page_cache()
9550 srdp, rgnp, rid); in sfmmu_page_cache()
10018 sfmmu_set_scd_rttecnt(sf_srd_t *srdp, sf_scd_t *scdp) in sfmmu_set_scd_rttecnt() argument
10025 ASSERT(srdp != NULL); in sfmmu_set_scd_rttecnt()
10045 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_set_scd_rttecnt()
10936 sf_srd_t *srdp; in sfmmu_hblk_alloc() local
11015 srdp = sfmmup->sfmmu_srdp; in sfmmu_hblk_alloc()
11016 ASSERT(srdp != NULL && srdp->srd_refcnt != 0); in sfmmu_hblk_alloc()
11017 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_hblk_alloc()
11029 sfmmu_cleanup_rhblk(srdp, vaddr, rid, ttesz); in sfmmu_hblk_alloc()
11033 sfmmu_cleanup_rhblk(srdp, va, rid, in sfmmu_hblk_alloc()
11502 sf_srd_t *srdp; in sfmmu_steal_this_hblk() local
11506 srdp = hblktosrd(hmeblkp); in sfmmu_steal_this_hblk()
11507 ASSERT(srdp != NULL && srdp->srd_refcnt != 0); in sfmmu_steal_this_hblk()
11511 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_steal_this_hblk()
11513 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid); in sfmmu_steal_this_hblk()
11634 sfmmu_is_rgnva(sf_srd_t *srdp, caddr_t addr, ulong_t w, ulong_t bmw) in sfmmu_is_rgnva() argument
11640 ASSERT(srdp != NULL); in sfmmu_is_rgnva()
11641 ASSERT(srdp->srd_refcnt != 0); in sfmmu_is_rgnva()
11651 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_is_rgnva()
13599 sf_srd_t *srdp; in hat_join_srd() local
13613 for (srdp = srd_buckets[hash].srdb_srdp; srdp != NULL; in hat_join_srd()
13614 srdp = srdp->srd_hash) { in hat_join_srd()
13615 if (srdp->srd_evp == evp) { in hat_join_srd()
13616 ASSERT(srdp->srd_refcnt >= 0); in hat_join_srd()
13617 sfmmup->sfmmu_srdp = srdp; in hat_join_srd()
13619 (volatile uint_t *)&srdp->srd_refcnt); in hat_join_srd()
13635 for (srdp = srd_buckets[hash].srdb_srdp; srdp != NULL; in hat_join_srd()
13636 srdp = srdp->srd_hash) { in hat_join_srd()
13637 if (srdp->srd_evp == evp) { in hat_join_srd()
13638 ASSERT(srdp->srd_refcnt >= 0); in hat_join_srd()
13639 sfmmup->sfmmu_srdp = srdp; in hat_join_srd()
13640 atomic_inc_32((volatile uint_t *)&srdp->srd_refcnt); in hat_join_srd()
13658 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in sfmmu_leave_srd() local
13669 ASSERT(srdp != NULL); in sfmmu_leave_srd()
13670 ASSERT(srdp->srd_refcnt > 0); in sfmmu_leave_srd()
13675 evp = srdp->srd_evp; in sfmmu_leave_srd()
13677 if (atomic_dec_32_nv((volatile uint_t *)&srdp->srd_refcnt)) { in sfmmu_leave_srd()
13685 (srdp = *prev_srdpp) != NULL; prev_srdpp = &srdp->srd_hash) { in sfmmu_leave_srd()
13686 if (srdp->srd_evp == evp) { in sfmmu_leave_srd()
13690 if (srdp == NULL || srdp->srd_refcnt) { in sfmmu_leave_srd()
13695 *prev_srdpp = srdp->srd_hash; in sfmmu_leave_srd()
13698 ASSERT(srdp->srd_refcnt == 0); in sfmmu_leave_srd()
13703 ASSERT(srdp->srd_rgnhash[i] == NULL); in sfmmu_leave_srd()
13708 for (rgnp = srdp->srd_hmergnfree; rgnp != NULL; rgnp = nrgnp) { in sfmmu_leave_srd()
13710 ASSERT(rgnp->rgn_id < srdp->srd_next_hmerid); in sfmmu_leave_srd()
13715 ASSERT(srdp->srd_hmergnp[rgnp->rgn_id] == rgnp); in sfmmu_leave_srd()
13724 ASSERT(rgns == srdp->srd_next_hmerid); in sfmmu_leave_srd()
13730 for (rgnp = srdp->srd_ismrgnfree; rgnp != NULL; rgnp = nrgnp) { in sfmmu_leave_srd()
13732 ASSERT(rgnp->rgn_id < srdp->srd_next_ismrid); in sfmmu_leave_srd()
13736 ASSERT(srdp->srd_ismrgnp[rgnp->rgn_id] == rgnp); in sfmmu_leave_srd()
13745 ASSERT(rgns == srdp->srd_next_ismrid); in sfmmu_leave_srd()
13746 ASSERT(srdp->srd_ismbusyrgns == 0); in sfmmu_leave_srd()
13747 ASSERT(srdp->srd_hmebusyrgns == 0); in sfmmu_leave_srd()
13749 srdp->srd_next_ismrid = 0; in sfmmu_leave_srd()
13750 srdp->srd_next_hmerid = 0; in sfmmu_leave_srd()
13752 bzero((void *)srdp->srd_ismrgnp, in sfmmu_leave_srd()
13754 bzero((void *)srdp->srd_hmergnp, in sfmmu_leave_srd()
13757 ASSERT(srdp->srd_scdp == NULL); in sfmmu_leave_srd()
13758 kmem_cache_free(srd_cache, srdp); in sfmmu_leave_srd()
13765 sf_srd_t *srdp = (sf_srd_t *)buf; in sfmmu_srdcache_constructor() local
13766 bzero(buf, sizeof (*srdp)); in sfmmu_srdcache_constructor()
13768 mutex_init(&srdp->srd_mutex, NULL, MUTEX_DEFAULT, NULL); in sfmmu_srdcache_constructor()
13769 mutex_init(&srdp->srd_scd_mutex, NULL, MUTEX_DEFAULT, NULL); in sfmmu_srdcache_constructor()
13777 sf_srd_t *srdp = (sf_srd_t *)buf; in sfmmu_srdcache_destructor() local
13779 mutex_destroy(&srdp->srd_mutex); in sfmmu_srdcache_destructor()
13780 mutex_destroy(&srdp->srd_scd_mutex); in sfmmu_srdcache_destructor()
13807 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in hat_join_region() local
13824 if (srdp == NULL || r_size == 0) { in hat_join_region()
13830 ASSERT(srdp->srd_refcnt > 0); in hat_join_region()
13846 if (r_type == SFMMU_REGION_HME && ((r_obj != srdp->srd_evp) || in hat_join_region()
13854 nextidp = &srdp->srd_next_ismrid; in hat_join_region()
13855 freelistp = &srdp->srd_ismrgnfree; in hat_join_region()
13857 rarrp = srdp->srd_ismrgnp; in hat_join_region()
13858 busyrgnsp = &srdp->srd_ismbusyrgns; in hat_join_region()
13860 nextidp = &srdp->srd_next_hmerid; in hat_join_region()
13861 freelistp = &srdp->srd_hmergnfree; in hat_join_region()
13863 rarrp = srdp->srd_hmergnp; in hat_join_region()
13864 busyrgnsp = &srdp->srd_hmebusyrgns; in hat_join_region()
13867 mutex_enter(&srdp->srd_mutex); in hat_join_region()
13869 for (rgnp = srdp->srd_rgnhash[rhash]; rgnp != NULL; in hat_join_region()
13888 mutex_exit(&srdp->srd_mutex); in hat_join_region()
14001 mutex_exit(&srdp->srd_mutex); in hat_join_region()
14005 ASSERT(MUTEX_HELD(&srdp->srd_mutex)); in hat_join_region()
14020 mutex_exit(&srdp->srd_mutex); in hat_join_region()
14024 mutex_enter(&srdp->srd_mutex); in hat_join_region()
14025 for (rgnp = srdp->srd_rgnhash[rhash]; rgnp != NULL; in hat_join_region()
14041 mutex_exit(&srdp->srd_mutex); in hat_join_region()
14068 rgnp->rgn_hash = srdp->srd_rgnhash[rhash]; in hat_join_region()
14069 srdp->srd_rgnhash[rhash] = rgnp; in hat_join_region()
14093 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in hat_leave_region() local
14110 ASSERT(srdp != NULL); in hat_leave_region()
14111 ASSERT(srdp->srd_refcnt > 0); in hat_leave_region()
14122 rgnp = srdp->srd_ismrgnp[rid]; in hat_leave_region()
14126 rgnp = srdp->srd_hmergnp[rid]; in hat_leave_region()
14154 ASSERT(rid < srdp->srd_next_ismrid); in hat_leave_region()
14172 ASSERT(rid < srdp->srd_next_hmerid); in hat_leave_region()
14239 mutex_enter(&srdp->srd_mutex); in hat_leave_region()
14240 for (prev_rgnpp = &srdp->srd_rgnhash[rhash]; in hat_leave_region()
14249 mutex_exit(&srdp->srd_mutex); in hat_leave_region()
14257 ASSERT(rid < srdp->srd_next_ismrid); in hat_leave_region()
14258 rgnp->rgn_next = srdp->srd_ismrgnfree; in hat_leave_region()
14259 srdp->srd_ismrgnfree = rgnp; in hat_leave_region()
14260 ASSERT(srdp->srd_ismbusyrgns > 0); in hat_leave_region()
14261 srdp->srd_ismbusyrgns--; in hat_leave_region()
14262 mutex_exit(&srdp->srd_mutex); in hat_leave_region()
14265 mutex_exit(&srdp->srd_mutex); in hat_leave_region()
14270 sfmmu_unload_hmeregion(srdp, rgnp); in hat_leave_region()
14280 mutex_enter(&srdp->srd_mutex); in hat_leave_region()
14281 ASSERT(rid < srdp->srd_next_hmerid); in hat_leave_region()
14282 rgnp->rgn_next = srdp->srd_hmergnfree; in hat_leave_region()
14283 srdp->srd_hmergnfree = rgnp; in hat_leave_region()
14284 ASSERT(srdp->srd_hmebusyrgns > 0); in hat_leave_region()
14285 srdp->srd_hmebusyrgns--; in hat_leave_region()
14286 mutex_exit(&srdp->srd_mutex); in hat_leave_region()
14295 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in hat_dup_region() local
14303 ASSERT(srdp != NULL); in hat_dup_region()
14304 ASSERT(srdp->srd_refcnt > 0); in hat_dup_region()
14306 ASSERT(rid < srdp->srd_next_hmerid); in hat_dup_region()
14310 rgnp = srdp->srd_hmergnp[rid]; in hat_dup_region()
14404 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in check_scd_sfmmu_list() local
14407 ASSERT(srdp == sp->sfmmu_srdp); in check_scd_sfmmu_list()
14500 sfmmu_alloc_scd_tsbs(sf_srd_t *srdp, sf_scd_t *scdp) in sfmmu_alloc_scd_tsbs() argument
14515 ASSERT(srdp != NULL); in sfmmu_alloc_scd_tsbs()
14533 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_alloc_scd_tsbs()
14554 rgnp = srdp->srd_ismrgnp[rid]; in sfmmu_alloc_scd_tsbs()
14746 sfmmu_link_scd_to_regions(sf_srd_t *srdp, sf_scd_t *scdp) in sfmmu_link_scd_to_regions() argument
14773 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_link_scd_to_regions()
14781 rgnp = srdp->srd_ismrgnp[rid]; in sfmmu_link_scd_to_regions()
14803 sfmmu_unlink_scd_from_regions(sf_srd_t *srdp, sf_scd_t *scdp) in sfmmu_unlink_scd_from_regions() argument
14829 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_unlink_scd_from_regions()
14839 rgnp = srdp->srd_ismrgnp[rid]; in sfmmu_unlink_scd_from_regions()
14863 sfmmu_alloc_scd(sf_srd_t *srdp, sf_region_map_t *new_map) in sfmmu_alloc_scd() argument
14869 ASSERT(MUTEX_HELD(&srdp->srd_scd_mutex)); in sfmmu_alloc_scd()
14874 scsfmmup->sfmmu_srdp = srdp; in sfmmu_alloc_scd()
14893 if (sfmmu_alloc_scd_tsbs(srdp, new_scdp) != TSB_SUCCESS) { in sfmmu_alloc_scd()
14915 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in sfmmu_join_scd() local
14919 ASSERT(srdp != NULL); in sfmmu_join_scd()
14984 SF_SCD_DECR_REF(srdp, old_scdp); in sfmmu_join_scd()
15029 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in sfmmu_find_scd() local
15033 ASSERT(srdp != NULL); in sfmmu_find_scd()
15036 mutex_enter(&srdp->srd_scd_mutex); in sfmmu_find_scd()
15037 for (scdp = srdp->srd_scdp; scdp != NULL; in sfmmu_find_scd()
15043 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_find_scd()
15058 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_find_scd()
15068 if ((new_scdp = sfmmu_alloc_scd(srdp, &sfmmup->sfmmu_region_map)) == in sfmmu_find_scd()
15070 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_find_scd()
15079 sfmmu_set_scd_rttecnt(srdp, new_scdp); in sfmmu_find_scd()
15084 sfmmu_link_scd_to_regions(srdp, new_scdp); in sfmmu_find_scd()
15085 sfmmu_add_scd(&srdp->srd_scdp, new_scdp); in sfmmu_find_scd()
15088 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_find_scd()
15103 sf_srd_t *srdp = sfmmup->sfmmu_srdp; in sfmmu_leave_scd() local
15108 ASSERT(srdp != NULL); in sfmmu_leave_scd()
15131 SF_SCD_DECR_REF(srdp, scdp); in sfmmu_leave_scd()
15215 SF_SCD_DECR_REF(srdp, scdp); in sfmmu_leave_scd()
15224 sfmmu_destroy_scd(sf_srd_t *srdp, sf_scd_t *scdp, sf_region_map_t *scd_rmap) in sfmmu_destroy_scd() argument
15231 mutex_enter(&srdp->srd_scd_mutex); in sfmmu_destroy_scd()
15232 for (sp = srdp->srd_scdp; sp != NULL; sp = sp->scd_next) { in sfmmu_destroy_scd()
15237 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_destroy_scd()
15247 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_destroy_scd()
15255 sfmmu_remove_scd(&srdp->srd_scdp, scdp); in sfmmu_destroy_scd()
15256 mutex_exit(&srdp->srd_scd_mutex); in sfmmu_destroy_scd()
15258 sfmmu_unlink_scd_from_regions(srdp, scdp); in sfmmu_destroy_scd()
15331 sfmmu_srd_lock_held(sf_srd_t *srdp) in sfmmu_srd_lock_held() argument
15333 return (MUTEX_HELD(&srdp->srd_mutex)); in sfmmu_srd_lock_held()
15555 sf_srd_t *srdp; in sfmmu_hblk_hash_rm() local
15559 srdp = hblktosrd(hmeblkp); in sfmmu_hblk_hash_rm()
15560 ASSERT(srdp != NULL && srdp->srd_refcnt != 0); in sfmmu_hblk_hash_rm()
15564 rgnp = srdp->srd_hmergnp[rid]; in sfmmu_hblk_hash_rm()
15566 SFMMU_VALIDATE_SHAREDHBLK(hmeblkp, srdp, rgnp, rid); in sfmmu_hblk_hash_rm()