SCCS-vsn: sys/vm/vm_page.c 7.8
SCCS-vsn: sys/vm/vm_fault.c 7.8
SCCS-vsn: sys/vm/vm_param.h 7.4
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)vm_fault.c 7.7 (Berkeley) %G%
+ * @(#)vm_fault.c 7.8 (Berkeley) %G%
*
*
* Copyright (c) 1987, 1990 Carnegie-Mellon University.
*
*
* Copyright (c) 1987, 1990 Carnegie-Mellon University.
vm_page_t old_m;
vm_object_t next_object;
vm_page_t old_m;
vm_object_t next_object;
- vm_stat.faults++; /* needs lock XXX */
+ cnt.v_vm_faults++; /* needs lock XXX */
queue_remove(&vm_page_queue_inactive, m,
vm_page_t, pageq);
m->inactive = FALSE;
queue_remove(&vm_page_queue_inactive, m,
vm_page_t, pageq);
m->inactive = FALSE;
- vm_stat.inactive_count--;
- vm_stat.reactivations++;
+ cnt.v_inactive_count--;
+ cnt.v_reactivated++;
}
if (m->active) {
queue_remove(&vm_page_queue_active, m,
vm_page_t, pageq);
m->active = FALSE;
}
if (m->active) {
queue_remove(&vm_page_queue_active, m,
vm_page_t, pageq);
m->active = FALSE;
- vm_stat.active_count--;
}
vm_page_unlock_queues();
}
vm_page_unlock_queues();
*/
m = vm_page_lookup(object, offset);
*/
m = vm_page_lookup(object, offset);
m->fake = FALSE;
pmap_clear_modify(VM_PAGE_TO_PHYS(m));
break;
m->fake = FALSE;
pmap_clear_modify(VM_PAGE_TO_PHYS(m));
break;
first_m = NULL;
vm_page_zero_fill(m);
first_m = NULL;
vm_page_zero_fill(m);
- vm_stat.zero_fill_count++;
m->fake = FALSE;
m->absent = FALSE;
break;
m->fake = FALSE;
m->absent = FALSE;
break;
* Only use the new page below...
*/
* Only use the new page below...
*/
m = first_m;
object = first_object;
offset = first_offset;
m = first_m;
object = first_object;
offset = first_offset;
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)vm_page.c 7.7 (Berkeley) %G%
+ * @(#)vm_page.c 7.8 (Berkeley) %G%
*
*
* Copyright (c) 1987, 1990 Carnegie-Mellon University.
*
*
* Copyright (c) 1987, 1990 Carnegie-Mellon University.
* size. Must be called before any use of page-size
* dependent functions.
*
* size. Must be called before any use of page-size
* dependent functions.
*
- * Sets page_shift and page_mask from vm_stat.page_size.
+ * Sets page_shift and page_mask from cnt.v_page_size.
*/
void vm_set_page_size()
{
*/
void vm_set_page_size()
{
- if (vm_stat.page_size == 0)
- vm_stat.page_size = DEFAULT_PAGE_SIZE;
- page_mask = vm_stat.page_size - 1;
- if ((page_mask & vm_stat.page_size) != 0)
+ if (cnt.v_page_size == 0)
+ cnt.v_page_size = DEFAULT_PAGE_SIZE;
+ page_mask = cnt.v_page_size - 1;
+ if ((page_mask & cnt.v_page_size) != 0)
panic("vm_set_page_size: page size not a power of two");
for (page_shift = 0; ; page_shift++)
panic("vm_set_page_size: page size not a power of two");
for (page_shift = 0; ; page_shift++)
- if ((1 << page_shift) == vm_stat.page_size)
+ if ((1 << page_shift) == cnt.v_page_size)
* of a page structure per page).
*/
* of a page structure per page).
*/
- vm_stat.free_count = npages =
+ cnt.v_free_count = npages =
(end - start)/(PAGE_SIZE + sizeof(struct vm_page));
/*
(end - start)/(PAGE_SIZE + sizeof(struct vm_page));
/*
/* perhaps iomem needs it's own type, or dev pager? */
m->fictitious = 1;
m->busy = TRUE;
/* perhaps iomem needs it's own type, or dev pager? */
m->fictitious = 1;
m->busy = TRUE;
}
#else /* i386 */
queue_enter(&vm_page_queue_free, m, vm_page_t, pageq);
}
#else /* i386 */
queue_enter(&vm_page_queue_free, m, vm_page_t, pageq);
queue_remove_first(&vm_page_queue_free, mem, vm_page_t, pageq);
queue_remove_first(&vm_page_queue_free, mem, vm_page_t, pageq);
simple_unlock(&vm_page_queue_free_lock);
splx(spl);
simple_unlock(&vm_page_queue_free_lock);
splx(spl);
* it doesn't really matter.
*/
* it doesn't really matter.
*/
- if ((vm_stat.free_count < vm_stat.free_min) ||
- ((vm_stat.free_count < vm_stat.free_target) &&
- (vm_stat.inactive_count < vm_stat.inactive_target)))
+ if ((cnt.v_free_count < cnt.v_free_min) ||
+ ((cnt.v_free_count < cnt.v_free_target) &&
+ (cnt.v_inactive_count < cnt.v_inactive_target)))
thread_wakeup((int)&vm_pages_needed);
return(mem);
}
thread_wakeup((int)&vm_pages_needed);
return(mem);
}
if (mem->active) {
queue_remove(&vm_page_queue_active, mem, vm_page_t, pageq);
mem->active = FALSE;
if (mem->active) {
queue_remove(&vm_page_queue_active, mem, vm_page_t, pageq);
mem->active = FALSE;
- vm_stat.active_count--;
}
if (mem->inactive) {
queue_remove(&vm_page_queue_inactive, mem, vm_page_t, pageq);
mem->inactive = FALSE;
}
if (mem->inactive) {
queue_remove(&vm_page_queue_inactive, mem, vm_page_t, pageq);
mem->inactive = FALSE;
- vm_stat.inactive_count--;
+ cnt.v_inactive_count--;
}
if (!mem->fictitious) {
}
if (!mem->fictitious) {
simple_lock(&vm_page_queue_free_lock);
queue_enter(&vm_page_queue_free, mem, vm_page_t, pageq);
simple_lock(&vm_page_queue_free_lock);
queue_enter(&vm_page_queue_free, mem, vm_page_t, pageq);
simple_unlock(&vm_page_queue_free_lock);
splx(spl);
}
simple_unlock(&vm_page_queue_free_lock);
splx(spl);
}
if (mem->active) {
queue_remove(&vm_page_queue_active, mem, vm_page_t,
pageq);
if (mem->active) {
queue_remove(&vm_page_queue_active, mem, vm_page_t,
pageq);
- vm_stat.active_count--;
mem->active = FALSE;
}
if (mem->inactive) {
queue_remove(&vm_page_queue_inactive, mem, vm_page_t,
pageq);
mem->active = FALSE;
}
if (mem->inactive) {
queue_remove(&vm_page_queue_inactive, mem, vm_page_t,
pageq);
- vm_stat.inactive_count--;
+ cnt.v_inactive_count--;
mem->wire_count--;
if (mem->wire_count == 0) {
queue_enter(&vm_page_queue_active, mem, vm_page_t, pageq);
mem->wire_count--;
if (mem->wire_count == 0) {
queue_enter(&vm_page_queue_active, mem, vm_page_t, pageq);
- vm_stat.active_count++;
queue_enter(&vm_page_queue_inactive, m, vm_page_t, pageq);
m->active = FALSE;
m->inactive = TRUE;
queue_enter(&vm_page_queue_inactive, m, vm_page_t, pageq);
m->active = FALSE;
m->inactive = TRUE;
- vm_stat.active_count--;
- vm_stat.inactive_count++;
+ cnt.v_active_count--;
+ cnt.v_inactive_count++;
if (pmap_is_modified(VM_PAGE_TO_PHYS(m)))
m->clean = FALSE;
m->laundry = !m->clean;
if (pmap_is_modified(VM_PAGE_TO_PHYS(m)))
m->clean = FALSE;
m->laundry = !m->clean;
if (m->inactive) {
queue_remove(&vm_page_queue_inactive, m, vm_page_t,
pageq);
if (m->inactive) {
queue_remove(&vm_page_queue_inactive, m, vm_page_t,
pageq);
- vm_stat.inactive_count--;
+ cnt.v_inactive_count--;
m->inactive = FALSE;
}
if (m->wire_count == 0) {
m->inactive = FALSE;
}
if (m->wire_count == 0) {
queue_enter(&vm_page_queue_active, m, vm_page_t, pageq);
m->active = TRUE;
queue_enter(&vm_page_queue_active, m, vm_page_t, pageq);
m->active = TRUE;
- vm_stat.active_count++;
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)vm_param.h 7.3 (Berkeley) %G%
+ * @(#)vm_param.h 7.4 (Berkeley) %G%
*
*
* Copyright (c) 1987, 1990 Carnegie-Mellon University.
*
*
* Copyright (c) 1987, 1990 Carnegie-Mellon University.
* or PAGE_SHIFT. The fact they are variables is hidden here so that
* we can easily make them constant if we so desire.
*/
* or PAGE_SHIFT. The fact they are variables is hidden here so that
* we can easily make them constant if we so desire.
*/
-#define PAGE_SIZE vm_stat.page_size /* size of page */
+#define PAGE_SIZE cnt.v_page_size /* size of page */
#define PAGE_SHIFT page_shift /* bits to shift for pages */
/*
#define PAGE_SHIFT page_shift /* bits to shift for pages */
/*
#endif KERNEL
#ifdef KERNEL
#endif KERNEL
#ifdef KERNEL
-extern vm_size_t page_mask; /* vm_stat.page_size - 1; mask for
+extern vm_size_t page_mask; /* cnt.v_page_size - 1; mask for
offset within page */
extern int page_shift; /* shift to use for page size */
offset within page */
extern int page_shift; /* shift to use for page size */