Currently, the size of struct vm_map is 68 bytes.  By using a bit
field for the boolean flags, it can be made fit into a cache line.

* vm/vm_map.h (struct vm_map): Use a bit field for the boolean flags
wait_for_space and wiring_required.
---
 vm/vm_map.h | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/vm/vm_map.h b/vm/vm_map.h
index b6bc177..b8103eb 100644
--- a/vm/vm_map.h
+++ b/vm/vm_map.h
@@ -175,9 +175,12 @@ struct vm_map {
        vm_map_entry_t          hint;           /* hint for quick lookups */
        decl_simple_lock_data(, hint_lock)      /* lock for hint storage */
        vm_map_entry_t          first_free;     /* First free space hint */
-       boolean_t               wait_for_space; /* Should callers wait
+
+       /* Flags */
+       unsigned int    wait_for_space:1,       /* Should callers wait
                                                   for space? */
-       boolean_t               wiring_required;/* All memory wired? */
+       /* boolean_t */ wiring_required:1;      /* All memory wired? */
+
        unsigned int            timestamp;      /* Version number */
 };
 
-- 
1.9.2


Reply via email to