o Create vm_pageq_enqueue() to encapsulate code that is duplicated time
and again in vm_page.c and vm_pageq.c. o Delete unusused prototypes. (Mainly a result of the earlier renaming of various functions from vm_page_*() to vm_pageq_*().)
This commit is contained in:
parent
899ccf541a
commit
2be21c5e68
@ -1041,12 +1041,9 @@ vm_page_activate(vm_page_t m)
|
||||
vm_pageq_remove(m);
|
||||
|
||||
if (m->wire_count == 0 && (m->flags & PG_UNMANAGED) == 0) {
|
||||
m->queue = PQ_ACTIVE;
|
||||
vm_page_queues[PQ_ACTIVE].lcnt++;
|
||||
TAILQ_INSERT_TAIL(&vm_page_queues[PQ_ACTIVE].pl, m, pageq);
|
||||
if (m->act_count < ACT_INIT)
|
||||
m->act_count = ACT_INIT;
|
||||
cnt.v_active_count++;
|
||||
vm_pageq_enqueue(PQ_ACTIVE, m);
|
||||
}
|
||||
} else {
|
||||
if (m->act_count < ACT_INIT)
|
||||
@ -1311,17 +1308,11 @@ vm_page_unwire(vm_page_t m, int activate)
|
||||
cnt.v_wire_count--;
|
||||
if (m->flags & PG_UNMANAGED) {
|
||||
;
|
||||
} else if (activate) {
|
||||
TAILQ_INSERT_TAIL(&vm_page_queues[PQ_ACTIVE].pl, m, pageq);
|
||||
m->queue = PQ_ACTIVE;
|
||||
vm_page_queues[PQ_ACTIVE].lcnt++;
|
||||
cnt.v_active_count++;
|
||||
} else {
|
||||
} else if (activate)
|
||||
vm_pageq_enqueue(PQ_ACTIVE, m);
|
||||
else {
|
||||
vm_page_flag_clear(m, PG_WINATCFLS);
|
||||
TAILQ_INSERT_TAIL(&vm_page_queues[PQ_INACTIVE].pl, m, pageq);
|
||||
m->queue = PQ_INACTIVE;
|
||||
vm_page_queues[PQ_INACTIVE].lcnt++;
|
||||
cnt.v_inactive_count++;
|
||||
vm_pageq_enqueue(PQ_INACTIVE, m);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -1451,10 +1442,7 @@ vm_page_cache(vm_page_t m)
|
||||
}
|
||||
s = splvm();
|
||||
vm_pageq_remove_nowakeup(m);
|
||||
m->queue = PQ_CACHE + m->pc;
|
||||
vm_page_queues[m->queue].lcnt++;
|
||||
TAILQ_INSERT_TAIL(&vm_page_queues[m->queue].pl, m, pageq);
|
||||
cnt.v_cache_count++;
|
||||
vm_pageq_enqueue(PQ_CACHE + m->pc, m);
|
||||
vm_page_free_wakeup();
|
||||
splx(s);
|
||||
}
|
||||
|
@ -334,13 +334,13 @@ void vm_page_free_zero(vm_page_t m);
|
||||
int vm_page_sleep_busy(vm_page_t m, int also_m_busy, const char *msg);
|
||||
void vm_page_dirty(vm_page_t m);
|
||||
void vm_page_undirty(vm_page_t m);
|
||||
vm_page_t vm_page_list_find(int basequeue, int index, boolean_t prefer_zero);
|
||||
void vm_page_wakeup(vm_page_t m);
|
||||
|
||||
void vm_pageq_init(void);
|
||||
struct vpgqueues *vm_pageq_aquire(int queue);
|
||||
void vm_pageq_release(struct vpgqueues *vpq);
|
||||
vm_page_t vm_pageq_add_new_page(vm_offset_t pa);
|
||||
void vm_pageq_enqueue(int queue, vm_page_t m);
|
||||
void vm_pageq_remove_nowakeup(vm_page_t m);
|
||||
void vm_pageq_remove(vm_page_t m);
|
||||
vm_page_t vm_pageq_find(int basequeue, int index, boolean_t prefer_zero);
|
||||
@ -359,12 +359,9 @@ vm_page_t vm_page_lookup (vm_object_t, vm_pindex_t);
|
||||
void vm_page_remove (vm_page_t);
|
||||
void vm_page_rename (vm_page_t, vm_object_t, vm_pindex_t);
|
||||
vm_offset_t vm_page_startup (vm_offset_t, vm_offset_t, vm_offset_t);
|
||||
vm_page_t vm_add_new_page (vm_offset_t pa);
|
||||
void vm_page_unmanage (vm_page_t);
|
||||
void vm_page_unwire (vm_page_t, int);
|
||||
void vm_page_wire (vm_page_t);
|
||||
void vm_page_unqueue (vm_page_t);
|
||||
void vm_page_unqueue_nowakeup (vm_page_t);
|
||||
void vm_page_set_validclean (vm_page_t, int, int);
|
||||
void vm_page_set_dirty (vm_page_t, int, int);
|
||||
void vm_page_clear_dirty (vm_page_t, int, int);
|
||||
@ -372,10 +369,6 @@ void vm_page_set_invalid (vm_page_t, int, int);
|
||||
int vm_page_is_valid (vm_page_t, int, int);
|
||||
void vm_page_test_dirty (vm_page_t);
|
||||
int vm_page_bits (int, int);
|
||||
#if 0
|
||||
int vm_page_sleep(vm_page_t m, char *msg, char *busy);
|
||||
int vm_page_asleep(vm_page_t m, char *msg, char *busy);
|
||||
#endif
|
||||
void vm_page_zero_invalid(vm_page_t m, boolean_t setvalid);
|
||||
void vm_page_free_toq(vm_page_t m);
|
||||
void vm_page_zero_idle_wakeup(void);
|
||||
|
@ -81,6 +81,22 @@ vm_pageq_requeue(vm_page_t m)
|
||||
vm_pageq_release(vpq);
|
||||
}
|
||||
|
||||
/*
|
||||
* vm_pageq_enqueue:
|
||||
*
|
||||
*/
|
||||
void
|
||||
vm_pageq_enqueue(int queue, vm_page_t m)
|
||||
{
|
||||
struct vpgqueues *vpq;
|
||||
|
||||
vpq = &vm_page_queues[queue];
|
||||
m->queue = queue;
|
||||
TAILQ_INSERT_TAIL(&vpq->pl, m, pageq);
|
||||
++*vpq->cnt;
|
||||
++vpq->lcnt;
|
||||
}
|
||||
|
||||
/*
|
||||
* vm_add_new_page:
|
||||
*
|
||||
@ -95,14 +111,11 @@ vm_pageq_add_new_page(vm_offset_t pa)
|
||||
GIANT_REQUIRED;
|
||||
|
||||
++cnt.v_page_count;
|
||||
++cnt.v_free_count;
|
||||
m = PHYS_TO_VM_PAGE(pa);
|
||||
m->phys_addr = pa;
|
||||
m->flags = 0;
|
||||
m->pc = (pa >> PAGE_SHIFT) & PQ_L2_MASK;
|
||||
m->queue = m->pc + PQ_FREE;
|
||||
TAILQ_INSERT_TAIL(&vm_page_queues[m->queue].pl, m, pageq);
|
||||
vm_page_queues[m->queue].lcnt++;
|
||||
vm_pageq_enqueue(m->pc + PQ_FREE, m);
|
||||
return (m);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user