diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-08-16 02:17:56 +0200 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-08-16 02:19:38 +0200 |
commit | 03955afa0a3cc6e9dece39ec631ce3744b1b08ba (patch) | |
tree | f60616ba0e3b4bf7d59a7cda1f95f26adf878b7d /vm | |
parent | 75e34439527edaf9299da07b54c305a5068b3a1a (diff) |
yyy vm: turn page queue lock into a general lock
Diffstat (limited to 'vm')
-rw-r--r-- | vm/vm_page.h | 7 | ||||
-rw-r--r-- | vm/vm_resident.c | 4 |
2 files changed, 5 insertions, 6 deletions
diff --git a/vm/vm_page.h b/vm/vm_page.h index c401b25..81ab3df 100644 --- a/vm/vm_page.h +++ b/vm/vm_page.h @@ -324,8 +324,7 @@ int vm_page_external_count; /* How many pages for external objects? */ -decl_simple_lock_data(extern,vm_page_queue_lock)/* lock on active and inactive - page queues */ +struct lock vm_page_queue_lock; /* lock on active and inactive page queues */ decl_simple_lock_data(extern,vm_page_queue_free_lock) /* lock on free page queue */ @@ -431,8 +430,8 @@ extern void vm_page_unwire(vm_page_t); #define VM_PAGE_WAIT(continuation) vm_page_wait(continuation) -#define vm_page_lock_queues() simple_lock(&vm_page_queue_lock) -#define vm_page_unlock_queues() simple_unlock(&vm_page_queue_lock) +#define vm_page_lock_queues() lock_write(&vm_page_queue_lock) +#define vm_page_unlock_queues() lock_write_done(&vm_page_queue_lock) #define VM_PAGE_QUEUES_REMOVE(mem) \ MACRO_BEGIN \ diff --git a/vm/vm_resident.c b/vm/vm_resident.c index aa99e61..8b10e00 100644 --- a/vm/vm_resident.c +++ b/vm/vm_resident.c @@ -118,7 +118,7 @@ vm_offset_t vm_page_fictitious_addr = (vm_offset_t) -1; */ queue_head_t vm_page_queue_active; queue_head_t vm_page_queue_inactive; -decl_simple_lock_data(,vm_page_queue_lock) +struct lock vm_page_queue_lock; int vm_page_active_count; int vm_page_inactive_count; int vm_page_wire_count; @@ -165,7 +165,7 @@ void vm_page_bootstrap( */ simple_lock_init(&vm_page_queue_free_lock); - simple_lock_init(&vm_page_queue_lock); + lock_init(&vm_page_queue_lock, FALSE); vm_page_queue_free = VM_PAGE_NULL; vm_page_queue_fictitious = VM_PAGE_NULL; |