summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_object.h
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2000-05-21 13:41:29 +0000
committerpeter <peter@FreeBSD.org>2000-05-21 13:41:29 +0000
commit807a5519028c413f1a6eb2a4a100af4170425554 (patch)
tree04ec85a52c81760d92cfd7592df079b556640168 /sys/vm/vm_object.h
parent7ae48d4d372ec107a8d8d0e583c97f198a52389d (diff)
downloadFreeBSD-src-807a5519028c413f1a6eb2a4a100af4170425554.zip
FreeBSD-src-807a5519028c413f1a6eb2a4a100af4170425554.tar.gz
Checkpoint of a new physical memory backed object type, that does not
have pv_entries. This is intended for very special circumstances, eg: a certain database that has a 1GB shm segment mapped into 300 processes. That would consume 2GB of kvm just to hold the pv_entries alone. This would not be used on systems unless the physical ram was available, as it's not pageable. This is a work-in-progress, but is a useful and functional checkpoint. Matt has got some more fixes for it that will be committed soon. Reviewed by: dillon
Diffstat (limited to 'sys/vm/vm_object.h')
-rw-r--r--sys/vm/vm_object.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h
index 5fb2e69..62a3bbe 100644
--- a/sys/vm/vm_object.h
+++ b/sys/vm/vm_object.h
@@ -74,7 +74,8 @@
#include <sys/queue.h>
#include <machine/atomic.h>
-enum obj_type { OBJT_DEFAULT, OBJT_SWAP, OBJT_VNODE, OBJT_DEVICE, OBJT_DEAD };
+enum obj_type { OBJT_DEFAULT, OBJT_SWAP, OBJT_VNODE, OBJT_DEVICE, OBJT_PHYS,
+ OBJT_DEAD };
typedef u_char objtype_t;
/*
@@ -123,6 +124,15 @@ struct vm_object {
} devp;
/*
+ * Physmem pager
+ *
+ * physp_pglist - list of allocated pages
+ */
+ struct {
+ TAILQ_HEAD(, vm_page) physp_pglist;
+ } physp;
+
+ /*
* Swap pager
*
* swp_bcount - number of swap 'swblock' metablocks, each
OpenPOWER on IntegriCloud