svn commit: r217508 - head/sys/vm
Alan Cox
alc at FreeBSD.org
Mon Jan 17 19:17:26 UTC 2011
Author: alc
Date: Mon Jan 17 19:17:26 2011
New Revision: 217508
URL: http://svn.freebsd.org/changeset/base/217508
Log:
Explicitly initialize the page's queue field to PQ_NONE instead of relying
on PQ_NONE being zero.
Redefine PQ_NONE and PQ_COUNT so that a page queue isn't allocated for
PQ_NONE.
Reviewed by: kib@
Modified:
head/sys/vm/device_pager.c
head/sys/vm/sg_pager.c
head/sys/vm/vm_page.h
head/sys/vm/vm_phys.c
Modified: head/sys/vm/device_pager.c
==============================================================================
--- head/sys/vm/device_pager.c Mon Jan 17 18:58:28 2011 (r217507)
+++ head/sys/vm/device_pager.c Mon Jan 17 19:17:26 2011 (r217508)
@@ -318,6 +318,7 @@ dev_pager_getfake(vm_paddr_t paddr, vm_m
m = uma_zalloc(fakepg_zone, M_WAITOK | M_ZERO);
m->phys_addr = paddr;
+ m->queue = PQ_NONE;
/* Fictitious pages don't use "segind". */
m->flags = PG_FICTITIOUS;
/* Fictitious pages don't use "order" or "pool". */
Modified: head/sys/vm/sg_pager.c
==============================================================================
--- head/sys/vm/sg_pager.c Mon Jan 17 18:58:28 2011 (r217507)
+++ head/sys/vm/sg_pager.c Mon Jan 17 19:17:26 2011 (r217508)
@@ -242,6 +242,7 @@ sg_pager_getfake(vm_paddr_t paddr, vm_me
m = uma_zalloc(fakepg_zone, M_WAITOK | M_ZERO);
m->phys_addr = paddr;
+ m->queue = PQ_NONE;
/* Fictitious pages don't use "segind". */
m->flags = PG_FICTITIOUS;
/* Fictitious pages don't use "order" or "pool". */
Modified: head/sys/vm/vm_page.h
==============================================================================
--- head/sys/vm/vm_page.h Mon Jan 17 18:58:28 2011 (r217507)
+++ head/sys/vm/vm_page.h Mon Jan 17 19:17:26 2011 (r217508)
@@ -146,11 +146,11 @@ struct vm_page {
#define VPO_SWAPINPROG 0x0200 /* swap I/O in progress on page */
#define VPO_NOSYNC 0x0400 /* do not collect for syncer */
-#define PQ_NONE 0
-#define PQ_INACTIVE 1
-#define PQ_ACTIVE 2
-#define PQ_HOLD 3
-#define PQ_COUNT 4
+#define PQ_NONE 255
+#define PQ_INACTIVE 0
+#define PQ_ACTIVE 1
+#define PQ_HOLD 2
+#define PQ_COUNT 3
struct vpgqueues {
struct pglist pl;
Modified: head/sys/vm/vm_phys.c
==============================================================================
--- head/sys/vm/vm_phys.c Mon Jan 17 18:58:28 2011 (r217507)
+++ head/sys/vm/vm_phys.c Mon Jan 17 19:17:26 2011 (r217508)
@@ -385,6 +385,7 @@ vm_phys_add_page(vm_paddr_t pa)
cnt.v_page_count++;
m = vm_phys_paddr_to_vm_page(pa);
m->phys_addr = pa;
+ m->queue = PQ_NONE;
m->segind = vm_phys_paddr_to_segind(pa);
m->flags = PG_FREE;
KASSERT(m->order == VM_NFREEORDER,
More information about the svn-src-all
mailing list