summaryrefslogtreecommitdiff
path: root/mach-defpager
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2022-12-31 12:56:49 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2022-12-31 12:56:49 +0100
commit6ab707e575fefa32c039ce5f815e4859b6cd1d47 (patch)
tree18a27c0ad6eb777840edbe069f28360ae6ce8f66 /mach-defpager
parentc2faa45297d07aa717af3caa5adb2d397ebb5468 (diff)
mach-defpager: document lock ordering
Diffstat (limited to 'mach-defpager')
-rw-r--r--mach-defpager/priv.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/mach-defpager/priv.h b/mach-defpager/priv.h
index 6f5aade6..d77e509c 100644
--- a/mach-defpager/priv.h
+++ b/mach-defpager/priv.h
@@ -32,6 +32,28 @@
#include <hurd/ihash.h>
/*
+ * Note: lock ordering:
+ *
+ * - all_partitions.lock
+ * - part->p_lock
+ *
+ * (from S_default_pager_objects)
+ * - all_pagers.lock
+ * - dstruct_lock
+ *
+ * (from S_default_pager_object_set_size that calls pager_truncate)
+ * - dstruct_lock
+ * - pager.lock
+ * - part->p_lock
+ *
+ * (from destroy_paging_partition)
+ * - all_partitions.lock
+ * - part->p_lock
+ * - all_pagers.lock
+ * - dstruct_lock
+ */
+
+/*
* Bitmap allocation.
*/
typedef unsigned int bm_entry_t;