Lines Matching full:order

190     int order, int pool, int tail);
291 "\n ORDER (SIZE) | NUMBER"
394 vm_freelist_add(struct vm_freelist *fl, vm_page_t m, int order, int pool,
398 m->order = order;
401 TAILQ_INSERT_TAIL(&fl[order].pl, m, listq);
403 TAILQ_INSERT_HEAD(&fl[order].pl, m, listq);
404 fl[order].lcnt++;
408 vm_freelist_rem(struct vm_freelist *fl, vm_page_t m, int order)
411 TAILQ_REMOVE(&fl[order].pl, m, listq);
412 fl[order].lcnt--;
413 m->order = VM_NFREEORDER;
685 * should request insertion at the head unless the order [order, oind) queues
691 vm_phys_split_pages(vm_page_t m, int oind, struct vm_freelist *fl, int order,
696 while (oind > order) {
699 KASSERT(m_buddy->order == VM_NFREEORDER,
700 ("vm_phys_split_pages: page %p has unexpected order %d",
701 m_buddy, m_buddy->order));
707 vm_phys_enq_chunk(struct vm_freelist *fl, vm_page_t m, int order, int pool,
710 KASSERT(order >= 0 && order < VM_NFREEORDER,
711 ("%s: invalid order %d", __func__, order));
713 vm_freelist_add(fl, m, order, pool, tail);
720 npages = 1 << order;
736 * should request insertion at the head unless the lower-order queues are
747 int order;
755 KASSERT(m->order == VM_NFREEORDER,
756 ("%s: page %p has unexpected order %d",
757 __func__, m, m->order));
758 order = ilog2(npages);
759 KASSERT(order < VM_NFREEORDER,
760 ("%s: order %d is out of range", __func__, order));
761 vm_phys_enq_chunk(fl, m, order, pool, tail);
762 m += 1 << order;
763 npages -= 1 << order;
772 * should request insertion at the head unless the lower-order queues are
784 int order;
792 KASSERT(m->order == VM_NFREEORDER,
793 ("vm_phys_enq_range: page %p has unexpected order %d",
794 m, m->order));
795 order = ffs(npages) - 1;
796 vm_phys_enq_chunk(fl, m, order, pool, tail);
797 m += 1 << order;
798 npages -= 1 << order;
812 vm_phys_finish_init(vm_page_t m, int order)
822 for (vm_page_t m_tmp = m + 1; m_tmp < &m[1 << order];
872 * Return excess pages to fl. Its order
896 * Its order [0, oind) queues
918 vm_phys_alloc_freelist_pages(int domain, int freelist, int pool, int order)
932 KASSERT(order < VM_NFREEORDER,
933 ("vm_phys_alloc_freelist_pages: order %d is out of range", order));
942 for (oind = order; oind < VM_NFREEORDER; oind++) {
946 /* The order [order, oind) queues are empty. */
947 vm_phys_split_pages(m, oind, fl, order, pool, 1);
958 for (oind = VM_NFREEORDER - 1; oind >= order; oind--) {
965 /* The order [order, oind) queues are empty. */
966 vm_phys_split_pages(m, oind, fl, order, pool, 1);
981 vm_phys_alloc_pages(int domain, int pool, int order)
987 m = vm_phys_alloc_freelist_pages(domain, freelist, pool, order);
1210 vm_phys_free_pages(vm_page_t m, int pool, int order)
1217 KASSERT(m->order == VM_NFREEORDER,
1218 ("%s: page %p has unexpected order %d",
1219 __func__, m, m->order));
1222 KASSERT(order < VM_NFREEORDER,
1223 ("%s: order %d is out of range", __func__, order));
1226 if (order < VM_NFREEORDER - 1) {
1229 pa ^= ((vm_paddr_t)1 << (PAGE_SHIFT + order));
1233 if (m_buddy->order != order)
1236 vm_freelist_rem(fl, m_buddy, order);
1237 vm_phys_finish_init(m_buddy, order);
1238 order++;
1239 pa &= ~(((vm_paddr_t)1 << (PAGE_SHIFT + order)) - 1);
1241 } while (order < VM_NFREEORDER - 1);
1244 vm_freelist_add(fl, m, order, pool, 1);
1362 int order;
1376 order = min(ilog2(diff), VM_NFREEORDER - 1);
1377 m = vm_phys_enq_range(m, roundup2(lo, 1 << order) - lo, fl,
1382 order = VM_NFREEORDER - 1;
1383 while (m + (1 << order) <= m_end) {
1387 vm_phys_enq_chunk(fl, m, order, pool, 1);
1388 m += 1 << order;
1484 int order, pool;
1502 for (m_set = m, order = 0; m_set->order == VM_NFREEORDER &&
1503 order < VM_NFREEORDER - 1; ) {
1504 order++;
1505 pa = m->phys_addr & (~(vm_paddr_t)0 << (PAGE_SHIFT + order));
1511 if (m_set->order < order)
1513 if (m_set->order == VM_NFREEORDER)
1515 KASSERT(m_set->order < VM_NFREEORDER,
1516 ("vm_phys_unfree_page: page %p has unexpected order %d",
1517 m_set, m_set->order));
1527 order = m_set->order;
1528 vm_freelist_rem(fl, m_set, order);
1529 while (order > 0) {
1530 order--;
1531 pa_half = m_set->phys_addr ^ (1 << (PAGE_SHIFT + order));
1538 vm_freelist_add(fl, m_tmp, order, pool, 0);
1564 * In order to avoid examining any free max-sized page block more than
1580 max_order == m[-1 << max_order].order)
1592 max_order == m_ret[1 << max_order].order)
1608 m_iter < m_ret + npages && max_order == m_iter->order;
1631 int oind, order, pind;
1637 order = flsl(npages - 1);
1640 for (oind = order; oind < VM_NFREEORDER; oind++) {
1658 if (order < VM_NFREEORDER)
1660 /* Search for a long-enough sequence of max-order blocks. */
1737 oind = m->order;
2037 "\n ORDER (SIZE) | NUMBER"