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:
Alan Cox 2002-03-04 18:55:26 +00:00
parent 899ccf541a
commit 2be21c5e68
3 changed files with 24 additions and 30 deletions

View File

@ -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);
}

View File

@ -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);

View File

@ -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);
}