Changeset View
Changeset View
Standalone View
Standalone View
head/sys/vm/vm_object.h
Show First 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | |||||
#include <vm/_vm_radix.h> | #include <vm/_vm_radix.h> | ||||
/* | /* | ||||
* Types defined: | * Types defined: | ||||
* | * | ||||
* vm_object_t Virtual memory object. | * vm_object_t Virtual memory object. | ||||
* | * | ||||
* The root of cached pages pool is protected by both the per-object lock | |||||
* and the free pages queue mutex. | |||||
* On insert in the cache radix trie, the per-object lock is expected | |||||
* to be already held and the free pages queue mutex will be | |||||
* acquired during the operation too. | |||||
* On remove and lookup from the cache radix trie, only the free | |||||
* pages queue mutex is expected to be locked. | |||||
* These rules allow for reliably checking for the presence of cached | |||||
* pages with only the per-object lock held, thereby reducing contention | |||||
* for the free pages queue mutex. | |||||
* | |||||
* List of locks | * List of locks | ||||
* (c) const until freed | * (c) const until freed | ||||
* (o) per-object lock | * (o) per-object lock | ||||
* (f) free pages queue mutex | * (f) free pages queue mutex | ||||
* | * | ||||
*/ | */ | ||||
struct vm_object { | struct vm_object { | ||||
▲ Show 20 Lines • Show All 227 Lines • Show Last 20 Lines |