]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
In the past four years, we've added two new vm object types. Each time,
authoralc <alc@FreeBSD.org>
Sun, 9 Dec 2012 00:32:38 +0000 (00:32 +0000)
committeralc <alc@FreeBSD.org>
Sun, 9 Dec 2012 00:32:38 +0000 (00:32 +0000)
commit02094caa2c2fce94821d84bde50b9373b47f97e7
treeaed54f82a0f3ede6ae38c3c71be27832f9a87d0a
parentc82d89183db93c8a4a4a1db712fa5464d28ff9a3
In the past four years, we've added two new vm object types.  Each time,
similar changes had to be made in various places throughout the machine-
independent virtual memory layer to support the new vm object type.
However, in most of these places, it's actually not the type of the vm
object that matters to us but instead certain attributes of its pages.
For example, OBJT_DEVICE, OBJT_MGTDEVICE, and OBJT_SG objects contain
fictitious pages.  In other words, in most of these places, we were
testing the vm object's type to determine if it contained fictitious (or
unmanaged) pages.

To both simplify the code in these places and make the addition of future
vm object types easier, this change introduces two new vm object flags
that describe attributes of the vm object's pages, specifically, whether
they are fictitious or unmanaged.

Reviewed and tested by: kib
sys/vm/vm_fault.c
sys/vm/vm_map.c
sys/vm/vm_meter.c
sys/vm/vm_object.c
sys/vm/vm_object.h
sys/vm/vm_page.c
sys/vm/vm_pageout.c