Lines Matching defs:psi
112 uvm_pglistalloc_c_ps(uvm_physseg_t psi, int num, paddr_t low, paddr_t high,
124 printf("pgalloc: contig %d pgs from psi %d\n", num, psi);
133 if (high <= uvm_physseg_get_avail_start(psi) ||
134 low >= uvm_physseg_get_avail_end(psi))
142 candidate = roundup2(ulmax(low, uvm_physseg_get_avail_start(psi) +
143 uvm_physseg_get_start_hint(psi)), alignment);
144 limit = ulmin(high, uvm_physseg_get_avail_end(psi));
154 if (uvm_physseg_get_start_hint(psi) == 0 || second_pass) {
166 candidate = roundup2(ulmax(low, uvm_physseg_get_avail_start(psi)), alignment);
167 limit = ulmin(limit, uvm_physseg_get_avail_start(psi) +
168 uvm_physseg_get_start_hint(psi));
188 if (uvm_physseg_find(candidate, &cidx) != psi)
190 if (cidx != candidate - uvm_physseg_get_start(psi))
192 if (uvm_physseg_find(candidate + num - 1, &cidx) != psi)
194 if (cidx != candidate - uvm_physseg_get_start(psi) + num - 1)
197 candidateidx = candidate - uvm_physseg_get_start(psi);
204 printf("%s: psi=%d candidate=%#lx end=%#lx skip=%#x, align=%#"PRIxPADDR,
205 __func__, psi, candidateidx, end, skip, alignment);
216 if (VM_PAGE_IS_FREE(uvm_physseg_get_pg(psi, idx)) == 0) {
223 idxpa = VM_PAGE_TO_PHYS(uvm_physseg_get_pg(psi, idx));
224 lastidxpa = VM_PAGE_TO_PHYS(uvm_physseg_get_pg(psi, idx - 1));
245 KDASSERT(VM_PAGE_IS_FREE(uvm_physseg_get_pg(psi, candidateidx + skip)));
277 uvm_pglist_add(uvm_physseg_get_pg(psi, idx), rlist);
283 uvm_physseg_set_start_hint(psi, candidate + num -
284 uvm_physseg_get_avail_start(psi));
285 KASSERTMSG(uvm_physseg_get_start_hint(psi) <=
286 uvm_physseg_get_avail_end(psi) - uvm_physseg_get_avail_start(psi),
289 uvm_physseg_get_start_hint(psi), uvm_physseg_get_start_hint(psi),
290 uvm_physseg_get_avail_end(psi), uvm_physseg_get_avail_start(psi),
291 uvm_physseg_get_avail_end(psi) - uvm_physseg_get_avail_start(psi));
456 uvm_physseg_t psi;
474 for (psi = uvm_physseg_get_last(); uvm_physseg_valid_p(psi); psi = uvm_physseg_get_prev(psi))
476 for (psi = uvm_physseg_get_first(); uvm_physseg_valid_p(psi); psi = uvm_physseg_get_next(psi))
479 if (uvm_physseg_get_free_list(psi) != fl)
482 int done = uvm_pglistalloc_c_ps(psi, num, low, high,
524 uvm_pglistalloc_s_ps(uvm_physseg_t psi, int num, paddr_t low, paddr_t high,
532 printf("pgalloc: simple %d pgs from psi %d\n", num, psi);
535 KASSERT(uvm_physseg_get_start(psi) <= uvm_physseg_get_avail_start(psi));
536 KASSERT(uvm_physseg_get_start(psi) <= uvm_physseg_get_avail_end(psi));
537 KASSERT(uvm_physseg_get_avail_start(psi) <= uvm_physseg_get_end(psi));
538 KASSERT(uvm_physseg_get_avail_end(psi) <= uvm_physseg_get_end(psi));
546 if (high <= uvm_physseg_get_avail_start(psi) ||
547 low >= uvm_physseg_get_avail_end(psi))
551 candidate = ulmax(low, uvm_physseg_get_avail_start(psi) +
552 uvm_physseg_get_start_hint(psi));
553 limit = ulmin(high, uvm_physseg_get_avail_end(psi));
554 pg = uvm_physseg_get_pg(psi, candidate - uvm_physseg_get_start(psi));
560 if (uvm_physseg_get_start_hint(psi) == 0 || second_pass) {
565 candidate = ulmax(low, uvm_physseg_get_avail_start(psi));
566 limit = ulmin(limit, uvm_physseg_get_avail_start(psi) +
567 uvm_physseg_get_start_hint(psi));
568 pg = uvm_physseg_get_pg(psi, candidate - uvm_physseg_get_start(psi));
575 KDASSERTMSG(bank == psi,
576 "uvm_physseg_find(%#lx) (%"PRIxPHYSSEG ") != psi %"PRIxPHYSSEG,
577 candidate, bank, psi);
578 KDASSERTMSG(cidx == candidate - uvm_physseg_get_start(psi),
580 candidate, cidx, (paddr_t)candidate - uvm_physseg_get_start(psi));
596 uvm_physseg_set_start_hint(psi, candidate + 1 - uvm_physseg_get_avail_start(psi));
597 KASSERTMSG(uvm_physseg_get_start_hint(psi) <= uvm_physseg_get_avail_end(psi) -
598 uvm_physseg_get_avail_start(psi),
601 psi),
602 uvm_physseg_get_start_hint(psi),
603 uvm_physseg_get_avail_end(psi),
604 uvm_physseg_get_avail_start(psi),
605 uvm_physseg_get_avail_end(psi) - uvm_physseg_get_avail_start(psi));
618 uvm_physseg_t psi;
639 for (psi = uvm_physseg_get_last(); uvm_physseg_valid_p(psi); psi = uvm_physseg_get_prev(psi))
641 for (psi = uvm_physseg_get_first(); uvm_physseg_valid_p(psi); psi = uvm_physseg_get_next(psi))
644 if (uvm_physseg_get_free_list(psi) != fl)
647 int done = uvm_pglistalloc_s_ps(psi, num, low, high,