diff options
author | Attilio Rao <attilio@FreeBSD.org> | 2013-08-09 11:28:55 +0000 |
---|---|---|
committer | Attilio Rao <attilio@FreeBSD.org> | 2013-08-09 11:28:55 +0000 |
commit | e946b94934e6205383b30f615799b6b60c391a3f (patch) | |
tree | 589f2433c8a0e985a4f0aeb058fbbf1b412b6f98 /sys/vm/vm_object.h | |
parent | ac6b769be979fb7ef6d09104d8e7c91696e42304 (diff) | |
download | src-e946b94934e6205383b30f615799b6b60c391a3f.tar.gz src-e946b94934e6205383b30f615799b6b60c391a3f.zip |
On all the architectures, avoid to preallocate the physical memory
for nodes used in vm_radix.
On architectures supporting direct mapping, also avoid to pre-allocate
the KVA for such nodes.
In order to do so make the operations derived from vm_radix_insert()
to fail and handle all the deriving failure of those.
vm_radix-wise introduce a new function called vm_radix_replace(),
which can replace a leaf node, already present, with a new one,
and take into account the possibility, during vm_radix_insert()
allocation, that the operations on the radix trie can recurse.
This means that if operations in vm_radix_insert() recursed
vm_radix_insert() will start from scratch again.
Sponsored by: EMC / Isilon storage division
Reviewed by: alc (older version)
Reviewed by: jeff
Tested by: pho, scottl
Notes
Notes:
svn path=/head/; revision=254141
Diffstat (limited to 'sys/vm/vm_object.h')
-rw-r--r-- | sys/vm/vm_object.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/vm/vm_object.h b/sys/vm/vm_object.h index e083b720d4cd..d59a9e61fdf3 100644 --- a/sys/vm/vm_object.h +++ b/sys/vm/vm_object.h @@ -102,7 +102,7 @@ struct vm_object { TAILQ_ENTRY(vm_object) object_list; /* list of all objects */ LIST_HEAD(, vm_object) shadow_head; /* objects that this is a shadow for */ LIST_ENTRY(vm_object) shadow_list; /* chain of shadow objects */ - TAILQ_HEAD(, vm_page) memq; /* list of resident pages */ + TAILQ_HEAD(respgs, vm_page) memq; /* list of resident pages */ struct vm_radix rtree; /* root of the resident page radix trie*/ vm_pindex_t size; /* Object size */ int generation; /* generation ID */ |