summaryrefslogtreecommitdiff
path: root/vm/vm_page.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm/vm_page.c')
-rw-r--r--vm/vm_page.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/vm/vm_page.c b/vm/vm_page.c
index 44573b10..4fde0759 100644
--- a/vm/vm_page.c
+++ b/vm/vm_page.c
@@ -755,6 +755,7 @@ vm_page_seg_free(struct vm_page_seg *seg, struct vm_page *page,
static void
vm_page_seg_add_active_page(struct vm_page_seg *seg, struct vm_page *page)
{
+ assert(simple_lock_taken(&seg->lock));
assert(page->object != NULL);
assert(page->seg_index == vm_page_seg_index(seg));
assert(page->type != VM_PT_FREE);
@@ -770,6 +771,7 @@ vm_page_seg_add_active_page(struct vm_page_seg *seg, struct vm_page *page)
static void
vm_page_seg_remove_active_page(struct vm_page_seg *seg, struct vm_page *page)
{
+ assert(simple_lock_taken(&seg->lock));
assert(page->object != NULL);
assert(page->seg_index == vm_page_seg_index(seg));
assert(page->type != VM_PT_FREE);
@@ -784,6 +786,7 @@ vm_page_seg_remove_active_page(struct vm_page_seg *seg, struct vm_page *page)
static void
vm_page_seg_add_inactive_page(struct vm_page_seg *seg, struct vm_page *page)
{
+ assert(simple_lock_taken(&seg->lock));
assert(page->object != NULL);
assert(page->seg_index == vm_page_seg_index(seg));
assert(page->type != VM_PT_FREE);
@@ -798,6 +801,7 @@ vm_page_seg_add_inactive_page(struct vm_page_seg *seg, struct vm_page *page)
static void
vm_page_seg_remove_inactive_page(struct vm_page_seg *seg, struct vm_page *page)
{
+ assert(simple_lock_taken(&seg->lock));
assert(page->object != NULL);
assert(page->seg_index == vm_page_seg_index(seg));
assert(page->type != VM_PT_FREE);
@@ -1726,6 +1730,9 @@ vm_page_mem_free(void)
void
vm_page_wire(struct vm_page *page)
{
+ assert(vm_page_locked_queues());
+ assert(vm_object_lock_taken(page->object));
+
VM_PAGE_CHECK(page);
if (page->wire_count == 0) {
@@ -1749,6 +1756,9 @@ vm_page_unwire(struct vm_page *page)
{
struct vm_page_seg *seg;
+ assert(vm_page_locked_queues());
+ assert(vm_object_lock_taken(page->object));
+
VM_PAGE_CHECK(page);
assert(page->wire_count != 0);
@@ -1781,6 +1791,8 @@ vm_page_deactivate(struct vm_page *page)
{
struct vm_page_seg *seg;
+ assert(vm_page_locked_queues());
+
VM_PAGE_CHECK(page);
/*
@@ -1820,6 +1832,8 @@ vm_page_activate(struct vm_page *page)
{
struct vm_page_seg *seg;
+ assert(vm_page_locked_queues());
+
VM_PAGE_CHECK(page);
/*
@@ -1845,6 +1859,8 @@ vm_page_queues_remove(struct vm_page *page)
{
struct vm_page_seg *seg;
+ assert(vm_page_locked_queues());
+
assert(!page->active || !page->inactive);
if (!page->active && !page->inactive) {