4162 ASSERT(like_pp->p_szc == szc);
4163
4164 if (PP_ISNORELOC(like_pp)) {
4165 ASSERT(kcage_on);
4166 REPL_STAT_INCR(ngets_noreloc);
4167 flags = PGI_RELOCONLY;
4168 } else if (pgrflags & PGR_NORELOC) {
4169 ASSERT(kcage_on);
4170 REPL_STAT_INCR(npgr_noreloc);
4171 flags = PG_NORELOC;
4172 }
4173
4174 /*
4175 * Kernel pages must always be replaced with the same size
4176 * pages, since we cannot properly handle demotion of kernel
4177 * pages.
4178 */
4179 if (PP_ISKAS(like_pp))
4180 pgrflags |= PGR_SAMESZC;
4181
4182 /* LINTED */
4183 MTYPE_PGR_INIT(mtype, flags, like_pp, page_mnode, npgs);
4184
4185 while (npgs) {
4186 pplist = NULL;
4187 for (;;) {
4188 pg_cnt = page_get_pagecnt(szc);
4189 bin = PP_2_BIN(like_pp);
4190 ASSERT(like_pp->p_szc == orig_like_pp->p_szc);
4191 ASSERT(pg_cnt <= npgs);
4192
4193 /*
4194 * If an lgroup was specified, try to get the
4195 * page from that lgroup.
4196 * NOTE: Must be careful with code below because
4197 * lgroup may disappear and reappear since there
4198 * is no locking for lgroup here.
4199 */
4200 if (LGRP_EXISTS(lgrp_target)) {
4201 /*
4202 * Keep local variable for lgroup separate
4203 * from lgroup argument since this code should
|
4162 ASSERT(like_pp->p_szc == szc);
4163
4164 if (PP_ISNORELOC(like_pp)) {
4165 ASSERT(kcage_on);
4166 REPL_STAT_INCR(ngets_noreloc);
4167 flags = PGI_RELOCONLY;
4168 } else if (pgrflags & PGR_NORELOC) {
4169 ASSERT(kcage_on);
4170 REPL_STAT_INCR(npgr_noreloc);
4171 flags = PG_NORELOC;
4172 }
4173
4174 /*
4175 * Kernel pages must always be replaced with the same size
4176 * pages, since we cannot properly handle demotion of kernel
4177 * pages.
4178 */
4179 if (PP_ISKAS(like_pp))
4180 pgrflags |= PGR_SAMESZC;
4181
4182 MTYPE_PGR_INIT(mtype, flags, like_pp, npgs);
4183
4184 while (npgs) {
4185 pplist = NULL;
4186 for (;;) {
4187 pg_cnt = page_get_pagecnt(szc);
4188 bin = PP_2_BIN(like_pp);
4189 ASSERT(like_pp->p_szc == orig_like_pp->p_szc);
4190 ASSERT(pg_cnt <= npgs);
4191
4192 /*
4193 * If an lgroup was specified, try to get the
4194 * page from that lgroup.
4195 * NOTE: Must be careful with code below because
4196 * lgroup may disappear and reappear since there
4197 * is no locking for lgroup here.
4198 */
4199 if (LGRP_EXISTS(lgrp_target)) {
4200 /*
4201 * Keep local variable for lgroup separate
4202 * from lgroup argument since this code should
|