summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_object.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2011-08-09 21:01:36 +0000
committerkib <kib@FreeBSD.org>2011-08-09 21:01:36 +0000
commitf408aa11a3c5eee2273216823e5ccb3bbcb98d4c (patch)
tree570d750da32cd7ade17317435d427a47d947779a /sys/vm/vm_object.c
parentbceb19a351c4e3c01b16f29e3c6856629159df2e (diff)
downloadFreeBSD-src-f408aa11a3c5eee2273216823e5ccb3bbcb98d4c.zip
FreeBSD-src-f408aa11a3c5eee2273216823e5ccb3bbcb98d4c.tar.gz
- Move the PG_UNMANAGED flag from m->flags to m->oflags, renaming the flag
to VPO_UNMANAGED (and also making the flag protected by the vm object lock, instead of vm page queue lock). - Mark the fake pages with both PG_FICTITIOUS (as it is now) and VPO_UNMANAGED. As a consequence, pmap code now can use use just VPO_UNMANAGED to decide whether the page is unmanaged. Reviewed by: alc Tested by: pho (x86, previous version), marius (sparc64), marcel (arm, ia64, powerpc), ray (mips) Sponsored by: The FreeBSD Foundation Approved by: re (bz)
Diffstat (limited to 'sys/vm/vm_object.c')
-rw-r--r--sys/vm/vm_object.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index b5788f5..602d99e 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -1087,7 +1087,9 @@ shadowlookup:
vm_page_unlock(m);
goto unlock_tobject;
}
- KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0,
+ KASSERT((m->flags & PG_FICTITIOUS) == 0,
+ ("vm_object_madvise: page %p is fictitious", m));
+ KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("vm_object_madvise: page %p is not managed", m));
if ((m->oflags & VPO_BUSY) || m->busy) {
if (advise == MADV_WILLNEED) {
OpenPOWER on IntegriCloud