Lines Matching refs:szc

133 		    uint_t szc);
341 * with vp,off,size,szc used as a key. Text replication segments are read only
413 uint_t szc;
422 szc = maxszc = page_num_pagesizes() - 1;
423 if (szc == 0) {
427 panic("segvn_init: bad szc 0");
430 while (szc != 0) {
431 pgsz = page_get_pagesize(szc);
433 panic("segvn_init: bad szc %d", szc);
436 szc--;
448 for (szc = 1; szc <= segvn_maxpgszc; szc++) {
451 (void) sprintf(str, "segvn_szc_cache%d", szc);
452 segvn_szc_cache[szc] = kmem_cache_create(str,
453 page_get_pagecnt(szc) * sizeof (page_t *), 0,
581 if (a->szc != 0) {
582 if (segvn_lpg_disable != 0 || (a->szc == AS_MAP_NO_LPOOB) ||
585 a->szc = 0;
587 if (a->szc > segvn_maxpgszc)
588 a->szc = segvn_maxpgszc;
589 pgsz = page_get_pagesize(a->szc);
592 a->szc = 0;
600 a->szc = 0;
603 a->szc = 0;
607 pgcnt_t pgcnt = page_get_pagecnt(a->szc);
609 a->szc = 0;
758 (a->szc == pseg->s_szc &&
797 (a->szc == nseg->s_szc &&
814 seg->s_szc = a->szc;
838 if (a->szc != 0 && a->vp != NULL) {
897 if (a->szc > amp->a_szc) {
898 amp->a_szc = a->szc;
1281 seg1->s_szc != a->szc || svd1->softlockcnt_send > 0)
1402 seg2->s_szc != a->szc || svd2->softlockcnt_sbase > 0)
3137 * it's assumed that no page's szc can change since they are all PAGESIZE or
3214 * Check if all pages in ppa array are complete smaller than szc pages and
3216 * entire ppa array is relocated into one szc page. If these conditions are
3226 * szc page and all exclusive locks are successfully obtained promote the page
3227 * size to szc and set *pszc to szc. Return 1 with pages locked shared.
3230 segvn_full_szcpages(page_t **ppa, uint_t szc, int *upgrdfail, uint_t *pszc)
3234 pgcnt_t totnpgs = page_get_pagecnt(szc);
3243 ASSERT(szc > 0);
3267 if ((curszc = pp->p_szc) >= szc) {
3304 ASSERT(ppa[i]->p_szc < szc);
3317 * When a page is put a free cachelist its szc is set to 0. if file
3319 * contiguous with 0 p_szc. in this case just upgrade szc of targ
3330 ppa[i]->p_szc = szc;
3337 *pszc = szc;
3346 * page_size(szc)) range and for private segment return them in ppa array.
3358 uint_t szc, page_t **ppa, page_t **ppplist, uint_t *ret_pszc,
3363 size_t pgsz = page_get_pagesize(szc);
3389 ASSERT(szc != 0);
3390 ASSERT(pplist->p_szc == szc);
3430 if (pszc >= szc && targ_pplist == NULL && io_pplist == NULL &&
3442 if (pszc >= szc) {
3536 * page szc chould have changed before the entire group was
3537 * locked. reread page szc.
3703 ASSERT(pp->p_szc == szc);
3714 ASSERT(pp->p_szc == szc);
3734 ASSERT(pp->p_szc == szc);
3743 ASSERT(pp->p_szc == szc);
3831 uint_t szc = seg->s_szc;
3832 size_t pgsz = page_get_pagesize(szc);
3866 ASSERT(szc != 0);
3923 while (szc < seg->s_szc) {
3926 tszc = segvn_anypgsz_vnode ? szc + 1 :
3934 szc = tszc;
3961 if (szc < seg->s_szc) {
3962 szc = seg->s_szc;
3997 if (!brkcow && !tron && szc &&
3998 !page_exists_physcontig(vp, off, szc,
4002 szc, 0, 0) && type != F_SOFTLOCK) {
4006 alloc_failed |= (1 << szc);
4014 vp, off, szc, ppa, &pplist,
4031 } else if (!brkcow && !tron && szc && ppa[0] != NULL) {
4102 ASSERT(szc != 0);
4129 if (szc < seg->s_szc) {
4141 * szc. text replication (tron) in
4164 ASSERT(szc == seg->s_szc);
4168 ierr = anon_map_privatepages(amp, aindx, szc,
4208 * last. This means if root's p_szc is equal szc and
4211 * szc is already done and no new have page_demote()
4230 if ((pszc = ppa[0]->p_szc) == szc &&
4240 ASSERT(ppa[i]->p_szc == szc);
4247 * All pages are of szc we need and they are
4248 * all locked so they can't change szc. load
4282 if (pszc > szc && szc < seg->s_szc &&
4319 if (szc == 0 ||
4320 (pszc >= szc &&
4322 (pszc < szc &&
4323 !segvn_full_szcpages(ppa, szc, &upgrdfail,
4331 ASSERT(pszc < szc);
4351 if (szc != 0 && !upgrdfail) {
4386 if (pszc == szc) {
4388 * segvn_full_szcpages() upgraded pages szc.
4395 if (pszc > szc) {
4401 * page_lock_szc() to prevent szc changes.
4410 if (pszc <= szc) {
4451 szc, 0, 0) && type != F_SOFTLOCK) {
4461 alloc_failed |= (1 << szc);
4481 ASSERT(ppa[i]->p_szc < szc);
4525 ASSERT(ierr == -2 || szc != 0);
4526 ASSERT(ierr == -1 || szc < seg->s_szc);
4529 ASSERT(pszc > szc && pszc <= seg->s_szc);
4530 szc = pszc;
4533 szc--;
4536 ASSERT(pszc < szc);
4539 * but we still have to drop to 0 szc.
4541 szc = 0;
4544 pgsz = page_get_pagesize(szc);
4623 /* segvn_fault will do its job as if szc had been zero to begin with */
4640 uint_t szc = seg->s_szc;
4641 size_t pgsz = page_get_pagesize(szc);
4644 uint_t ppaszc = szc;
4660 ASSERT(szc != 0);
4718 szc = seg->s_szc;
4731 ierr = anon_map_getpages(amp, aindx, szc, seg, a,
4753 ppa[0]->p_szc <= szc);
4755 ppa[0]->p_szc >= szc);
4806 ASSERT(ierr == -2 || szc != 0);
4807 ASSERT(ierr == -1 || szc < seg->s_szc);
4808 szc = (ierr == -1) ? szc - 1 : szc + 1;
4813 * if existing page is found with szc other
4817 * case simply re-size to existing page's szc
4821 szc = (ierr == -1) ? 0 : seg->s_szc;
4824 ASSERT(ierr == -2 || ppa_szc < szc);
4825 ASSERT(ierr == -1 || ppa_szc > szc);
4826 szc = ppa_szc;
4830 pgsz = page_get_pagesize(szc);
6067 * to determine if the seg is capable of mapping the requested szc.
6070 segvn_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc)
6077 size_t pgsz = page_get_pagesize(szc);
6078 pgcnt_t pgcnt = page_get_pagecnt(szc);
6085 if (seg->s_szc == szc || segvn_lpg_disable != 0) {
6114 szc > segvn_maxpgszc) {
6194 if (szc < seg->s_szc) {
6208 /* eaddr is szc aligned */
6214 /* eaddr is szc aligned */
6277 * new szc.
6304 if (svd->vp != NULL && szc != 0) {
6329 seg->s_size, szc, svd->prot, svd->vpage,
6340 amp->a_szc = szc;
6341 } else if (szc > amp->a_szc) {
6342 amp->a_szc = szc;
6347 seg->s_szc = szc;
6734 uint_t szc = seg->s_szc;
6739 ASSERT(szc != 0);
6740 pgsz = page_get_pagesize(szc);
6786 ASSERT(badseg1->s_szc == szc);
6797 if (szc > 1 && (tszcvec = P2PHASE(szcvec, 1 << szc)) > 1) {
6805 ASSERT(tszc < szc && tszc > 0);
6831 ASSERT(badseg2->s_szc == szc);
6839 if (szc > 1 && (tszcvec = P2PHASE(szcvec, 1 << szc)) > 1) {
6845 ASSERT(tszc < szc && tszc > 0);
9739 uint_t szc = seg->s_szc;
9841 * if off, eoff and szc match current segment we found the
9845 svntrp->tr_szc == szc) {
9883 svntrp->tr_szc = szc;
9968 amp->a_szc = szc;
9981 ASSERT(amp->a_szc == szc && amp->size == size && amp->swresv == size);
10023 uint_t szc = seg->s_szc;
10046 svntrp->tr_eoff == eoff && svntrp->tr_szc == szc) {
10087 ASSERT(amp->a_szc == szc);
10089 anon_free_pages(amp->ahp, 0, size, szc);