summaryrefslogtreecommitdiff
path: root/sys/uvm/uvm_aobj.h
diff options
context:
space:
mode:
authorOwain Ainsworth <oga@cvs.openbsd.org>2009-05-05 05:12:18 +0000
committerOwain Ainsworth <oga@cvs.openbsd.org>2009-05-05 05:12:18 +0000
commit2ca0420015a74e63df7b050b2128a444db29fdba (patch)
treea372e6a26ed8034c4fa9f1415dd057073476d657 /sys/uvm/uvm_aobj.h
parent71fba0a7a9467d4c3ad3de9a82987215f224e965 (diff)
The first step in cleaning up the use of PG_RELEASED for uvm objects.
Now, the PG_ RELEASED flag currently has two (maybe three) uses. The valid one is for use with async io where we want to free the page after we've paged it out. The other ones are "oh i'd like to free this, but someone else is playing with it". It's simpler to just sleep on the damned page instead and stop the fiddling. First step does uao's: in uao_detach, sleep on the object and free it when we're clean, instead of setting a flag so it's freed after. In uao_flush, do the same. Change the interation over the object in flush so that we don't have to add marker pages or other such voodoo to the list when we sleep (netbsd did that when they had a similar diff), just use the hash always. We can now change uao_releasepg() to just free the page, and not bother with the KILLME stuff. When the other objects are fixed this hook will vanish. Much discussion with art@ over the idea, and ariane@ over this specific diff. As mentioned, this one is based loosely on a similar idea in netbsd. Been in my tree for a while, survived many make builds, etc, and forcing paging using ariane's evil program. ok ariane@, beck@.
Diffstat (limited to 'sys/uvm/uvm_aobj.h')
-rw-r--r--sys/uvm/uvm_aobj.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/uvm/uvm_aobj.h b/sys/uvm/uvm_aobj.h
index ac5cbc25bae..b30e9026b07 100644
--- a/sys/uvm/uvm_aobj.h
+++ b/sys/uvm/uvm_aobj.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: uvm_aobj.h,v 1.8 2002/03/14 01:27:18 millert Exp $ */
+/* $OpenBSD: uvm_aobj.h,v 1.9 2009/05/05 05:12:17 oga Exp $ */
/* $NetBSD: uvm_aobj.h,v 1.10 2000/01/11 06:57:49 chs Exp $ */
/*
@@ -55,8 +55,6 @@
#define UAO_FLAG_KERNSWAP 0x2 /* enable kernel swap */
/* internal flags */
-#define UAO_FLAG_KILLME 0x4 /* aobj should die when last released
- * page is no longer PG_BUSY ... */
#define UAO_FLAG_NOSWAP 0x8 /* aobj can't swap (kernel obj only!) */
#ifdef _KERNEL