Manaul pages that seem to be correct and up to date: vm_map.9 vm_map_find.9 vm_map_findspace.9 vm_map_inherit.9 vm_map_init.9 vm_map_create.9 vm_map_lock.9 vm_map_lookup.9 vm_map_protect.9 vm_map_remove.9 vm_map_wire.9 vm_map_max.9 vm_page_bits.9 Functions that don't seem to require obvious locking, nor they are documented to require such: vm_fault_prefault.9 vm_map_entry_resize_free.9 We also have no locking in the example code (we should put vm_map_lock() before vm_map_insert(), "..." after vm_map_insert and vm_map_unlock(). Manual pages that should be removed, as we no longer have functions documented in them: vm_map_clean.9 vm_page_protect.9 vm_page_zero_fill.9 vm_page_copy.9 Changes I wasn't sure about, and which I didn't include in my changes: vm_map_insert.9 Requires that the map be locked, and leaves it so. I run browsed through a number of functions and we seem to have no serialization with the Giant lock, but the manual page says it can be used. Can you confirm it's still applicable? Changes: vm_page_alloc.9 VM_ALLOC_UNBUSY is missing VM_ALLOC_WIRED is missing Are those private interfaces, or were added to the system without bringing nessesery updates for the VM subsystem. vm_map_check_protection.9 The map lock must be acquired prior to calling this function. A read lock is sufficient. vm_map_delete.9 The map lock must be acquired prior to calling this function. vm_map_madvise.9 The function calls vm_map_lock(9) to hold a lock on map for the duration of the function call. vm_map_simplify_entry.9 I'd move " The map must be locked upon entry" to the "IMPLEMENTATION NOTES" section. vm_map_stack.9 vm_map_growstack() still requires Giant? The function calls vm_map_lock(9) to hold a lock on map for the duration of the function call. vm_map_submap.9 We should note that the 'map' will be locked. vm_page_cache.9 underlying object to be locked. vm_page_free.9 underlying object to be locked. vm_page_grab.9 vm_page_insert.9 vm_page_rename.9 This function requires 'object' to be locked. vm_page_hold.9 vm_page_wire.9 vm_page_flag.9 vm_page_deactivate.9 vm_page_dontneed.9 requires vm_page_queue_mtx to be acquired. vm_page_io.9 Both vm_page_io_start and vm_page_io_finish() require underlying object to be locked. vm_page_lookup.9 I'd like to add "IMPLEMENTATION NOTES" pointing to the meaning of a page index value (possibly a link to the vm_page_insert, where it's described). vm_page_sleep_busy.9 Function in this manual should have it's name changed to vm_page_sleep_if_busy(). This function requires underlying object to be locked. vm_page_wakeup.9 vm_page_busy(vm_page_t m); vm_page_flash(vm_page_t m); vm_page_wakeup(vm_page_t m); .Nm requires page's underlying vm_object to be locked.