svn commit: r247021 - in user/attilio/vmobj-rwlock/sys: amd64/amd64 arm/arm dev/agp dev/drm dev/drm2 dev/drm2/i915 dev/hwpmc dev/md dev/netmap dev/sound/pcm fs/fuse fs/nfsclient fs/procfs fs/tmpfs ...
Attilio Rao
attilio at FreeBSD.org
Wed Feb 20 10:38:46 UTC 2013
Author: attilio
Date: Wed Feb 20 10:38:34 2013
New Revision: 247021
URL: http://svnweb.freebsd.org/changeset/base/247021
Log:
Switch vm_object lock to be a rwlock.
* VM_OBJECT_LOCK and VM_OBJECT_UNLOCK are mapped to write operations
* VM_OBJECT_SLEEP() is introduced as a general purpose primitve to
get a sleep operation using a VM_OBJECT_LOCK() as protection
* The approach must bear with vm_pager.h namespace pollution so many
files require including directly rwlock.h
Modified:
user/attilio/vmobj-rwlock/sys/amd64/amd64/machdep.c
user/attilio/vmobj-rwlock/sys/amd64/amd64/pmap.c
user/attilio/vmobj-rwlock/sys/arm/arm/pmap-v6.c
user/attilio/vmobj-rwlock/sys/arm/arm/pmap.c
user/attilio/vmobj-rwlock/sys/dev/agp/agp.c
user/attilio/vmobj-rwlock/sys/dev/agp/agp_i810.c
user/attilio/vmobj-rwlock/sys/dev/drm/drmP.h
user/attilio/vmobj-rwlock/sys/dev/drm2/drmP.h
user/attilio/vmobj-rwlock/sys/dev/drm2/i915/i915_gem.c
user/attilio/vmobj-rwlock/sys/dev/hwpmc/hwpmc_mod.c
user/attilio/vmobj-rwlock/sys/dev/md/md.c
user/attilio/vmobj-rwlock/sys/dev/netmap/netmap.c
user/attilio/vmobj-rwlock/sys/dev/sound/pcm/dsp.c
user/attilio/vmobj-rwlock/sys/fs/fuse/fuse_io.c
user/attilio/vmobj-rwlock/sys/fs/fuse/fuse_vnops.c
user/attilio/vmobj-rwlock/sys/fs/nfsclient/nfs_clbio.c
user/attilio/vmobj-rwlock/sys/fs/procfs/procfs_map.c
user/attilio/vmobj-rwlock/sys/fs/tmpfs/tmpfs_subr.c
user/attilio/vmobj-rwlock/sys/fs/tmpfs/tmpfs_vnops.c
user/attilio/vmobj-rwlock/sys/i386/i386/machdep.c
user/attilio/vmobj-rwlock/sys/i386/i386/pmap.c
user/attilio/vmobj-rwlock/sys/i386/xen/pmap.c
user/attilio/vmobj-rwlock/sys/ia64/ia64/pmap.c
user/attilio/vmobj-rwlock/sys/kern/imgact_elf.c
user/attilio/vmobj-rwlock/sys/kern/kern_exec.c
user/attilio/vmobj-rwlock/sys/kern/kern_proc.c
user/attilio/vmobj-rwlock/sys/kern/kern_sharedpage.c
user/attilio/vmobj-rwlock/sys/kern/kern_shutdown.c
user/attilio/vmobj-rwlock/sys/kern/subr_uio.c
user/attilio/vmobj-rwlock/sys/kern/sys_process.c
user/attilio/vmobj-rwlock/sys/kern/sysv_shm.c
user/attilio/vmobj-rwlock/sys/kern/uipc_shm.c
user/attilio/vmobj-rwlock/sys/kern/uipc_syscalls.c
user/attilio/vmobj-rwlock/sys/kern/vfs_aio.c
user/attilio/vmobj-rwlock/sys/kern/vfs_bio.c
user/attilio/vmobj-rwlock/sys/kern/vfs_cluster.c
user/attilio/vmobj-rwlock/sys/kern/vfs_default.c
user/attilio/vmobj-rwlock/sys/kern/vfs_subr.c
user/attilio/vmobj-rwlock/sys/kern/vfs_syscalls.c
user/attilio/vmobj-rwlock/sys/kern/vfs_vnops.c
user/attilio/vmobj-rwlock/sys/mips/mips/pmap.c
user/attilio/vmobj-rwlock/sys/nfsclient/nfs_bio.c
user/attilio/vmobj-rwlock/sys/nfsserver/nfs_serv.c
user/attilio/vmobj-rwlock/sys/ofed/include/linux/linux_compat.c
user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c
user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c
user/attilio/vmobj-rwlock/sys/powerpc/booke/pmap.c
user/attilio/vmobj-rwlock/sys/security/mac/mac_process.c
user/attilio/vmobj-rwlock/sys/sparc64/sparc64/pmap.c
user/attilio/vmobj-rwlock/sys/ufs/ffs/ffs_rawread.c
user/attilio/vmobj-rwlock/sys/ufs/ffs/ffs_vnops.c
user/attilio/vmobj-rwlock/sys/vm/default_pager.c
user/attilio/vmobj-rwlock/sys/vm/device_pager.c
user/attilio/vmobj-rwlock/sys/vm/phys_pager.c
user/attilio/vmobj-rwlock/sys/vm/sg_pager.c
user/attilio/vmobj-rwlock/sys/vm/swap_pager.c
user/attilio/vmobj-rwlock/sys/vm/uma_core.c
user/attilio/vmobj-rwlock/sys/vm/vm_fault.c
user/attilio/vmobj-rwlock/sys/vm/vm_glue.c
user/attilio/vmobj-rwlock/sys/vm/vm_init.c
user/attilio/vmobj-rwlock/sys/vm/vm_kern.c
user/attilio/vmobj-rwlock/sys/vm/vm_map.c
user/attilio/vmobj-rwlock/sys/vm/vm_meter.c
user/attilio/vmobj-rwlock/sys/vm/vm_mmap.c
user/attilio/vmobj-rwlock/sys/vm/vm_object.c
user/attilio/vmobj-rwlock/sys/vm/vm_object.h
user/attilio/vmobj-rwlock/sys/vm/vm_page.c
user/attilio/vmobj-rwlock/sys/vm/vm_pageout.c
user/attilio/vmobj-rwlock/sys/vm/vm_pager.c
user/attilio/vmobj-rwlock/sys/vm/vm_pager.h
user/attilio/vmobj-rwlock/sys/vm/vm_reserv.c
user/attilio/vmobj-rwlock/sys/vm/vnode_pager.c
Modified: user/attilio/vmobj-rwlock/sys/amd64/amd64/machdep.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/amd64/amd64/machdep.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/amd64/amd64/machdep.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -80,6 +80,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h>
#include <sys/ptrace.h>
#include <sys/reboot.h>
+#include <sys/rwlock.h>
#include <sys/sched.h>
#include <sys/signalvar.h>
#ifdef SMP
Modified: user/attilio/vmobj-rwlock/sys/amd64/amd64/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/amd64/amd64/pmap.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/amd64/amd64/pmap.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -3761,7 +3761,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
vm_page_t m, mpte;
vm_pindex_t diff, psize;
- VM_OBJECT_LOCK_ASSERT(m_start->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m_start->object, RA_WLOCKED);
psize = atop(end - start);
mpte = NULL;
m = m_start;
@@ -3943,7 +3943,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_page_t p, pdpg;
int pat_mode;
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
if ((addr & (NBPDR - 1)) == 0 && (size & (NBPDR - 1)) == 0) {
@@ -4557,7 +4557,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have PG_M set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (FALSE);
@@ -4688,7 +4688,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
@@ -4832,7 +4832,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
Modified: user/attilio/vmobj-rwlock/sys/arm/arm/pmap-v6.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/arm/arm/pmap-v6.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/arm/arm/pmap-v6.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -2212,7 +2212,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_pindex_t pindex, vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
}
@@ -3428,7 +3428,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
@@ -3475,7 +3475,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) != 0 ||
(m->aflags & PGA_WRITEABLE) != 0)
pmap_clearbit(m, PVF_WRITE);
Modified: user/attilio/vmobj-rwlock/sys/arm/arm/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/arm/arm/pmap.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/arm/arm/pmap.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -3006,7 +3006,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_pindex_t pindex, vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
}
@@ -4461,7 +4461,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
@@ -4523,7 +4523,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) != 0 ||
(m->aflags & PGA_WRITEABLE) != 0)
pmap_clearbit(m, PVF_WRITE);
Modified: user/attilio/vmobj-rwlock/sys/dev/agp/agp.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/dev/agp/agp.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/dev/agp/agp.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/proc.h>
+#include <sys/rwlock.h>
#include <dev/agp/agppriv.h>
#include <dev/agp/agpvar.h>
@@ -622,7 +623,7 @@ agp_generic_bind_memory(device_t dev, st
return 0;
bad:
mtx_unlock(&sc->as_lock);
- VM_OBJECT_LOCK_ASSERT(mem->am_obj, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(mem->am_obj, RA_WLOCKED);
for (k = 0; k < mem->am_size; k += PAGE_SIZE) {
m = vm_page_lookup(mem->am_obj, OFF_TO_IDX(k));
if (k >= i)
Modified: user/attilio/vmobj-rwlock/sys/dev/agp/agp_i810.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/dev/agp/agp_i810.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/dev/agp/agp_i810.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -56,6 +56,7 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/proc.h>
+#include <sys/rwlock.h>
#include <dev/agp/agppriv.h>
#include <dev/agp/agpreg.h>
Modified: user/attilio/vmobj-rwlock/sys/dev/drm/drmP.h
==============================================================================
--- user/attilio/vmobj-rwlock/sys/dev/drm/drmP.h Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/dev/drm/drmP.h Wed Feb 20 10:38:34 2013 (r247021)
@@ -59,6 +59,7 @@ struct drm_file;
#include <sys/fcntl.h>
#include <sys/uio.h>
#include <sys/filio.h>
+#include <sys/rwlock.h>
#include <sys/sysctl.h>
#include <sys/bus.h>
#include <sys/queue.h>
Modified: user/attilio/vmobj-rwlock/sys/dev/drm2/drmP.h
==============================================================================
--- user/attilio/vmobj-rwlock/sys/dev/drm2/drmP.h Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/dev/drm2/drmP.h Wed Feb 20 10:38:34 2013 (r247021)
@@ -58,6 +58,7 @@ struct drm_file;
#include <sys/fcntl.h>
#include <sys/uio.h>
#include <sys/filio.h>
+#include <sys/rwlock.h>
#include <sys/selinfo.h>
#include <sys/sysctl.h>
#include <sys/bus.h>
Modified: user/attilio/vmobj-rwlock/sys/dev/drm2/i915/i915_gem.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/dev/drm2/i915/i915_gem.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/dev/drm2/i915/i915_gem.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -2488,7 +2488,7 @@ i915_gem_wire_page(vm_object_t object, v
vm_page_t m;
int rv;
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
m = vm_page_grab(object, pindex, VM_ALLOC_NORMAL | VM_ALLOC_RETRY);
if (m->valid != VM_PAGE_BITS_ALL) {
if (vm_pager_has_page(object, pindex, NULL, NULL)) {
Modified: user/attilio/vmobj-rwlock/sys/dev/hwpmc/hwpmc_mod.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/dev/hwpmc/hwpmc_mod.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/dev/hwpmc/hwpmc_mod.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$");
#include <sys/proc.h>
#include <sys/queue.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/sched.h>
#include <sys/signalvar.h>
#include <sys/smp.h>
Modified: user/attilio/vmobj-rwlock/sys/dev/md/md.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/dev/md/md.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/dev/md/md.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -75,6 +75,7 @@
#include <sys/namei.h>
#include <sys/proc.h>
#include <sys/queue.h>
+#include <sys/rwlock.h>
#include <sys/sbuf.h>
#include <sys/sched.h>
#include <sys/sf_buf.h>
Modified: user/attilio/vmobj-rwlock/sys/dev/netmap/netmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/dev/netmap/netmap.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/dev/netmap/netmap.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -81,6 +81,7 @@ __FBSDID("$FreeBSD$");
#include <sys/mman.h> /* PROT_EXEC */
#include <sys/poll.h>
#include <sys/proc.h>
+#include <sys/rwlock.h>
#include <vm/vm.h> /* vtophys */
#include <vm/pmap.h> /* vtophys */
#include <sys/socket.h> /* sockaddrs */
Modified: user/attilio/vmobj-rwlock/sys/dev/sound/pcm/dsp.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/dev/sound/pcm/dsp.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/dev/sound/pcm/dsp.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -32,6 +32,8 @@
#include <dev/sound/pcm/sound.h>
#include <sys/ctype.h>
+#include <sys/lock.h>
+#include <sys/rwlock.h>
#include <sys/sysent.h>
#include <vm/vm.h>
Modified: user/attilio/vmobj-rwlock/sys/fs/fuse/fuse_io.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/fs/fuse/fuse_io.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/fs/fuse/fuse_io.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -69,6 +69,7 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/sx.h>
#include <sys/mutex.h>
+#include <sys/rwlock.h>
#include <sys/proc.h>
#include <sys/mount.h>
#include <sys/vnode.h>
@@ -87,8 +88,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_map.h>
#include <vm/vm_page.h>
#include <vm/vm_object.h>
-#include <vm/vm_pager.h>
-#include <vm/vnode_pager.h>
#include <vm/vm_object.h>
#include "fuse.h"
Modified: user/attilio/vmobj-rwlock/sys/fs/fuse/fuse_vnops.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/fs/fuse/fuse_vnops.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/fs/fuse/fuse_vnops.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -67,7 +67,7 @@ __FBSDID("$FreeBSD$");
#include <sys/malloc.h>
#include <sys/queue.h>
#include <sys/lock.h>
-#include <sys/mutex.h>
+#include <sys/rwlock.h>
#include <sys/sx.h>
#include <sys/proc.h>
#include <sys/mount.h>
Modified: user/attilio/vmobj-rwlock/sys/fs/nfsclient/nfs_clbio.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/fs/nfsclient/nfs_clbio.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/fs/nfsclient/nfs_clbio.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$");
#include <sys/buf.h>
#include <sys/kernel.h>
#include <sys/mount.h>
+#include <sys/rwlock.h>
#include <sys/vmmeter.h>
#include <sys/vnode.h>
Modified: user/attilio/vmobj-rwlock/sys/fs/procfs/procfs_map.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/fs/procfs/procfs_map.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/fs/procfs/procfs_map.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -43,9 +43,9 @@
#include <sys/filedesc.h>
#include <sys/malloc.h>
#include <sys/mount.h>
-#include <sys/mutex.h>
#include <sys/proc.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/sbuf.h>
#ifdef COMPAT_FREEBSD32
#include <sys/sysent.h>
Modified: user/attilio/vmobj-rwlock/sys/fs/tmpfs/tmpfs_subr.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/fs/tmpfs/tmpfs_subr.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/fs/tmpfs/tmpfs_subr.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -38,9 +38,11 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/fnv_hash.h>
+#include <sys/lock.h>
#include <sys/namei.h>
#include <sys/priv.h>
#include <sys/proc.h>
+#include <sys/rwlock.h>
#include <sys/stat.h>
#include <sys/systm.h>
#include <sys/sysctl.h>
Modified: user/attilio/vmobj-rwlock/sys/fs/tmpfs/tmpfs_vnops.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/fs/tmpfs/tmpfs_vnops.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/fs/tmpfs/tmpfs_vnops.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -39,9 +39,11 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/fcntl.h>
#include <sys/lockf.h>
+#include <sys/lock.h>
#include <sys/namei.h>
#include <sys/priv.h>
#include <sys/proc.h>
+#include <sys/rwlock.h>
#include <sys/sched.h>
#include <sys/sf_buf.h>
#include <sys/stat.h>
Modified: user/attilio/vmobj-rwlock/sys/i386/i386/machdep.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/i386/i386/machdep.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/i386/i386/machdep.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -81,6 +81,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pcpu.h>
#include <sys/ptrace.h>
#include <sys/reboot.h>
+#include <sys/rwlock.h>
#include <sys/sched.h>
#include <sys/signalvar.h>
#ifdef SMP
Modified: user/attilio/vmobj-rwlock/sys/i386/i386/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/i386/i386/pmap.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/i386/i386/pmap.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -3712,7 +3712,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
vm_page_t m, mpte;
vm_pindex_t diff, psize;
- VM_OBJECT_LOCK_ASSERT(m_start->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m_start->object, RA_WLOCKED);
psize = atop(end - start);
mpte = NULL;
m = m_start;
@@ -3890,7 +3890,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_page_t p;
int pat_mode;
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
if (pseflag &&
@@ -4509,7 +4509,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have PG_M set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (FALSE);
@@ -4644,7 +4644,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
@@ -4796,7 +4796,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
Modified: user/attilio/vmobj-rwlock/sys/i386/xen/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/i386/xen/pmap.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/i386/xen/pmap.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -2871,7 +2871,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
multicall_entry_t *mclp = mcl;
int error, count = 0;
- VM_OBJECT_LOCK_ASSERT(m_start->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m_start->object, RA_WLOCKED);
psize = atop(end - start);
mpte = NULL;
m = m_start;
@@ -3111,7 +3111,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_page_t p;
int pat_mode;
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
if (pseflag &&
@@ -3657,7 +3657,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have PG_M set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (rv);
@@ -3788,7 +3788,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
@@ -3889,7 +3889,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
Modified: user/attilio/vmobj-rwlock/sys/ia64/ia64/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/ia64/ia64/pmap.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/ia64/ia64/pmap.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -1802,7 +1802,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
vm_page_t m;
vm_pindex_t diff, psize;
- VM_OBJECT_LOCK_ASSERT(m_start->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m_start->object, RA_WLOCKED);
psize = atop(end - start);
m = m_start;
rw_wlock(&pvh_global_lock);
@@ -1893,7 +1893,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
}
@@ -2211,7 +2211,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can be dirty.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (rv);
@@ -2295,7 +2295,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
@@ -2373,7 +2373,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
Modified: user/attilio/vmobj-rwlock/sys/kern/imgact_elf.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/imgact_elf.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/imgact_elf.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/malloc.h>
#include <sys/mount.h>
-#include <sys/mutex.h>
#include <sys/mman.h>
#include <sys/namei.h>
#include <sys/pioctl.h>
@@ -53,6 +52,7 @@ __FBSDID("$FreeBSD$");
#include <sys/procfs.h>
#include <sys/racct.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/sf_buf.h>
#include <sys/smp.h>
#include <sys/systm.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/kern_exec.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/kern_exec.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/kern_exec.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$");
#include <sys/pioctl.h>
#include <sys/namei.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/sched.h>
#include <sys/sdt.h>
#include <sys/sf_buf.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/kern_proc.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/kern_proc.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/kern_proc.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$");
#include <sys/ptrace.h>
#include <sys/refcount.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/sbuf.h>
#include <sys/sysent.h>
#include <sys/sched.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/kern_sharedpage.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/kern_sharedpage.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/kern_sharedpage.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -34,7 +34,7 @@ __FBSDID("$FreeBSD$");
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/lock.h>
-#include <sys/mutex.h>
+#include <sys/rwlock.h>
#include <sys/sysent.h>
#include <sys/sysctl.h>
#include <sys/vdso.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/kern_shutdown.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/kern_shutdown.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/kern_shutdown.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$");
#include <sys/proc.h>
#include <sys/reboot.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/sched.h>
#include <sys/smp.h>
#include <sys/sysctl.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/subr_uio.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/subr_uio.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/subr_uio.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -45,9 +45,9 @@ __FBSDID("$FreeBSD$");
#include <sys/limits.h>
#include <sys/lock.h>
#include <sys/mman.h>
-#include <sys/mutex.h>
#include <sys/proc.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/sched.h>
#include <sys/sysctl.h>
#include <sys/vnode.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/sys_process.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/sys_process.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/sys_process.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$");
#include <sys/proc.h>
#include <sys/vnode.h>
#include <sys/ptrace.h>
+#include <sys/rwlock.h>
#include <sys/sx.h>
#include <sys/malloc.h>
#include <sys/signalvar.h>
@@ -59,7 +60,6 @@ __FBSDID("$FreeBSD$");
#include <vm/vm_kern.h>
#include <vm/vm_object.h>
#include <vm/vm_page.h>
-#include <vm/vm_pager.h>
#include <vm/vm_param.h>
#ifdef COMPAT_FREEBSD32
Modified: user/attilio/vmobj-rwlock/sys/kern/sysv_shm.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/sysv_shm.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/sysv_shm.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -79,6 +79,7 @@ __FBSDID("$FreeBSD$");
#include <sys/mutex.h>
#include <sys/racct.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/stat.h>
#include <sys/syscall.h>
#include <sys/syscallsubr.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/uipc_shm.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/uipc_shm.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/uipc_shm.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$");
#include <sys/proc.h>
#include <sys/refcount.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/stat.h>
#include <sys/sysctl.h>
#include <sys/sysproto.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/uipc_syscalls.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/uipc_syscalls.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/uipc_syscalls.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$");
#include <sys/mount.h>
#include <sys/mbuf.h>
#include <sys/protosw.h>
+#include <sys/rwlock.h>
#include <sys/sf_buf.h>
#include <sys/sysent.h>
#include <sys/socket.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/vfs_aio.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/vfs_aio.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/vfs_aio.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
#include <sys/resourcevar.h>
#include <sys/signalvar.h>
#include <sys/protosw.h>
+#include <sys/rwlock.h>
#include <sys/sema.h>
#include <sys/socket.h>
#include <sys/socketvar.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/vfs_bio.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/vfs_bio.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/vfs_bio.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$");
#include <sys/kthread.h>
#include <sys/proc.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/sysctl.h>
#include <sys/vmmeter.h>
#include <sys/vnode.h>
@@ -458,7 +459,7 @@ vfs_buf_test_cache(struct buf *bp,
vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if (bp->b_flags & B_CACHE) {
int base = (foff + off) & PAGE_MASK;
if (vm_page_is_valid(m, base, size) == 0)
@@ -2533,7 +2534,7 @@ vfs_setdirty_locked_object(struct buf *b
int i;
object = bp->b_bufobj->bo_object;
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
/*
* We qualify the scan for modified pages on whether the
@@ -3566,7 +3567,7 @@ vfs_drain_busy_pages(struct buf *bp)
vm_page_t m;
int i, last_busied;
- VM_OBJECT_LOCK_ASSERT(bp->b_bufobj->bo_object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(bp->b_bufobj->bo_object, RA_WLOCKED);
last_busied = 0;
for (i = 0; i < bp->b_npages; i++) {
m = bp->b_pages[i];
@@ -3719,7 +3720,7 @@ vfs_bio_clrbuf(struct buf *bp)
if (bp->b_pages[0] == bogus_page)
goto unlock;
mask = (1 << (bp->b_bufsize / DEV_BSIZE)) - 1;
- VM_OBJECT_LOCK_ASSERT(bp->b_pages[0]->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(bp->b_pages[0]->object, RA_WLOCKED);
if ((bp->b_pages[0]->valid & mask) == mask)
goto unlock;
if ((bp->b_pages[0]->valid & mask) == 0) {
@@ -3738,7 +3739,7 @@ vfs_bio_clrbuf(struct buf *bp)
continue;
j = ((vm_offset_t)sa & PAGE_MASK) / DEV_BSIZE;
mask = ((1 << ((ea - sa) / DEV_BSIZE)) - 1) << j;
- VM_OBJECT_LOCK_ASSERT(bp->b_pages[i]->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(bp->b_pages[i]->object, RA_WLOCKED);
if ((bp->b_pages[i]->valid & mask) == mask)
continue;
if ((bp->b_pages[i]->valid & mask) == 0)
Modified: user/attilio/vmobj-rwlock/sys/kern/vfs_cluster.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/vfs_cluster.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/vfs_cluster.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
#include <sys/malloc.h>
#include <sys/mount.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/vmmeter.h>
#include <vm/vm.h>
#include <vm/vm_object.h>
@@ -413,7 +414,7 @@ cluster_rbuild(vp, filesize, lbn, blkno,
if (toff + tinc > PAGE_SIZE)
tinc = PAGE_SIZE - toff;
VM_OBJECT_LOCK_ASSERT(tbp->b_pages[j]->object,
- MA_OWNED);
+ RA_WLOCKED);
if ((tbp->b_pages[j]->valid &
vm_page_bits(toff, tinc)) != 0)
break;
@@ -489,7 +490,7 @@ cluster_rbuild(vp, filesize, lbn, blkno,
*/
VM_OBJECT_LOCK(bp->b_bufobj->bo_object);
for (j = 0; j < bp->b_npages; j++) {
- VM_OBJECT_LOCK_ASSERT(bp->b_pages[j]->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(bp->b_pages[j]->object, RA_WLOCKED);
if (bp->b_pages[j]->valid == VM_PAGE_BITS_ALL)
bp->b_pages[j] = bogus_page;
}
Modified: user/attilio/vmobj-rwlock/sys/kern/vfs_default.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/vfs_default.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/vfs_default.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -47,8 +47,8 @@ __FBSDID("$FreeBSD$");
#include <sys/lockf.h>
#include <sys/malloc.h>
#include <sys/mount.h>
-#include <sys/mutex.h>
#include <sys/namei.h>
+#include <sys/rwlock.h>
#include <sys/fcntl.h>
#include <sys/unistd.h>
#include <sys/vnode.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/vfs_subr.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/vfs_subr.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/vfs_subr.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -67,6 +67,7 @@ __FBSDID("$FreeBSD$");
#include <sys/namei.h>
#include <sys/priv.h>
#include <sys/reboot.h>
+#include <sys/rwlock.h>
#include <sys/sched.h>
#include <sys/sleepqueue.h>
#include <sys/smp.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/vfs_syscalls.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/vfs_syscalls.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/vfs_syscalls.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$");
#include <sys/filio.h>
#include <sys/limits.h>
#include <sys/linker.h>
+#include <sys/rwlock.h>
#include <sys/sdt.h>
#include <sys/stat.h>
#include <sys/sx.h>
Modified: user/attilio/vmobj-rwlock/sys/kern/vfs_vnops.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/kern/vfs_vnops.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/kern/vfs_vnops.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$");
#include <sys/buf.h>
#include <sys/filio.h>
#include <sys/resourcevar.h>
+#include <sys/rwlock.h>
#include <sys/sx.h>
#include <sys/sysctl.h>
#include <sys/ttycom.h>
Modified: user/attilio/vmobj-rwlock/sys/mips/mips/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/mips/mips/pmap.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/mips/mips/pmap.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -2399,7 +2399,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
vm_page_t m, mpte;
vm_pindex_t diff, psize;
- VM_OBJECT_LOCK_ASSERT(m_start->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m_start->object, RA_WLOCKED);
psize = atop(end - start);
mpte = NULL;
m = m_start;
@@ -2423,7 +2423,7 @@ void
pmap_object_init_pt(pmap_t pmap, vm_offset_t addr,
vm_object_t object, vm_pindex_t pindex, vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
}
@@ -2768,7 +2768,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
@@ -2834,7 +2834,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have PTE_D set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (FALSE);
@@ -2882,7 +2882,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
Modified: user/attilio/vmobj-rwlock/sys/nfsclient/nfs_bio.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/nfsclient/nfs_bio.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/nfsclient/nfs_bio.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
#include <sys/mbuf.h>
#include <sys/mount.h>
#include <sys/proc.h>
+#include <sys/rwlock.h>
#include <sys/vmmeter.h>
#include <sys/vnode.h>
Modified: user/attilio/vmobj-rwlock/sys/nfsserver/nfs_serv.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/nfsserver/nfs_serv.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/nfsserver/nfs_serv.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -87,6 +87,7 @@ __FBSDID("$FreeBSD$");
#include <sys/sysctl.h>
#include <sys/bio.h>
#include <sys/buf.h>
+#include <sys/rwlock.h>
#include <vm/vm.h>
#include <vm/vm_extern.h>
Modified: user/attilio/vmobj-rwlock/sys/ofed/include/linux/linux_compat.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/ofed/include/linux/linux_compat.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/ofed/include/linux/linux_compat.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -37,6 +37,7 @@
#include <sys/fcntl.h>
#include <sys/file.h>
#include <sys/filio.h>
+#include <sys/rwlock.h>
#include <vm/vm.h>
#include <vm/pmap.h>
Modified: user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -1293,7 +1293,7 @@ moea_is_modified(mmu_t mmu, vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have PTE_CHG set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (FALSE);
@@ -1333,7 +1333,7 @@ moea_clear_modify(mmu_t mmu, vm_page_t m
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("moea_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
KASSERT((m->oflags & VPO_BUSY) == 0,
("moea_clear_modify: page %p is busy", m));
@@ -1368,7 +1368,7 @@ moea_remove_write(mmu_t mmu, vm_page_t m
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
Modified: user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/powerpc/aim/mmu_oea64.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -1449,7 +1449,7 @@ moea64_is_modified(mmu_t mmu, vm_page_t
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can have LPTE_CHG set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (FALSE);
@@ -1484,7 +1484,7 @@ moea64_clear_modify(mmu_t mmu, vm_page_t
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("moea64_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
KASSERT((m->oflags & VPO_BUSY) == 0,
("moea64_clear_modify: page %p is busy", m));
@@ -1517,7 +1517,7 @@ moea64_remove_write(mmu_t mmu, vm_page_t
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
Modified: user/attilio/vmobj-rwlock/sys/powerpc/booke/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/powerpc/booke/pmap.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/powerpc/booke/pmap.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -1960,7 +1960,7 @@ mmu_booke_remove_write(mmu_t mmu, vm_pag
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
@@ -2175,7 +2175,7 @@ mmu_booke_is_modified(mmu_t mmu, vm_page
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no PTEs can be modified.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (rv);
@@ -2247,7 +2247,7 @@ mmu_booke_clear_modify(mmu_t mmu, vm_pag
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("mmu_booke_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
KASSERT((m->oflags & VPO_BUSY) == 0,
("mmu_booke_clear_modify: page %p is busy", m));
@@ -2662,7 +2662,7 @@ mmu_booke_object_init_pt(mmu_t mmu, pmap
vm_object_t object, vm_pindex_t pindex, vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("mmu_booke_object_init_pt: non-device object"));
}
Modified: user/attilio/vmobj-rwlock/sys/security/mac/mac_process.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/security/mac/mac_process.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/security/mac/mac_process.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -54,9 +54,9 @@ __FBSDID("$FreeBSD$");
#include <sys/kernel.h>
#include <sys/lock.h>
#include <sys/malloc.h>
-#include <sys/mutex.h>
#include <sys/mac.h>
#include <sys/proc.h>
+#include <sys/rwlock.h>
#include <sys/sbuf.h>
#include <sys/sdt.h>
#include <sys/systm.h>
Modified: user/attilio/vmobj-rwlock/sys/sparc64/sparc64/pmap.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/sparc64/sparc64/pmap.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/sparc64/sparc64/pmap.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -1663,7 +1663,7 @@ pmap_object_init_pt(pmap_t pm, vm_offset
vm_pindex_t pindex, vm_size_t size)
{
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
KASSERT(object->type == OBJT_DEVICE || object->type == OBJT_SG,
("pmap_object_init_pt: non-device object"));
}
@@ -2061,7 +2061,7 @@ pmap_is_modified(vm_page_t m)
* concurrently set while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no TTEs can have TD_W set.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return (rv);
@@ -2129,7 +2129,7 @@ pmap_clear_modify(vm_page_t m)
KASSERT((m->oflags & VPO_UNMANAGED) == 0,
("pmap_clear_modify: page %p is not managed", m));
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
KASSERT((m->oflags & VPO_BUSY) == 0,
("pmap_clear_modify: page %p is busy", m));
@@ -2184,7 +2184,7 @@ pmap_remove_write(vm_page_t m)
* another thread while the object is locked. Thus, if PGA_WRITEABLE
* is clear, no page table entries need updating.
*/
- VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(m->object, RA_WLOCKED);
if ((m->oflags & VPO_BUSY) == 0 &&
(m->aflags & PGA_WRITEABLE) == 0)
return;
Modified: user/attilio/vmobj-rwlock/sys/ufs/ffs/ffs_rawread.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/ufs/ffs/ffs_rawread.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/ufs/ffs/ffs_rawread.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$");
#include <sys/ttycom.h>
#include <sys/bio.h>
#include <sys/buf.h>
+#include <sys/rwlock.h>
#include <ufs/ufs/extattr.h>
#include <ufs/ufs/quota.h>
#include <ufs/ufs/inode.h>
Modified: user/attilio/vmobj-rwlock/sys/ufs/ffs/ffs_vnops.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/ufs/ffs/ffs_vnops.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/ufs/ffs/ffs_vnops.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -75,6 +75,7 @@ __FBSDID("$FreeBSD$");
#include <sys/malloc.h>
#include <sys/mount.h>
#include <sys/priv.h>
+#include <sys/rwlock.h>
#include <sys/stat.h>
#include <sys/vmmeter.h>
#include <sys/vnode.h>
Modified: user/attilio/vmobj-rwlock/sys/vm/default_pager.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/vm/default_pager.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/vm/default_pager.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -45,7 +45,7 @@ __FBSDID("$FreeBSD$");
#include <sys/lock.h>
#include <sys/proc.h>
#include <sys/resourcevar.h>
-#include <sys/mutex.h>
+#include <sys/rwlock.h>
#include <vm/vm.h>
#include <vm/vm_object.h>
Modified: user/attilio/vmobj-rwlock/sys/vm/device_pager.c
==============================================================================
--- user/attilio/vmobj-rwlock/sys/vm/device_pager.c Wed Feb 20 06:48:39 2013 (r247020)
+++ user/attilio/vmobj-rwlock/sys/vm/device_pager.c Wed Feb 20 10:38:34 2013 (r247021)
@@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$");
#include <sys/proc.h>
#include <sys/mutex.h>
#include <sys/mman.h>
+#include <sys/rwlock.h>
#include <sys/sx.h>
#include <vm/vm.h>
@@ -206,7 +207,7 @@ void
cdev_pager_free_page(vm_object_t object, vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
if (object->type == OBJT_MGTDEVICE) {
KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("unmanaged %p", m));
pmap_remove_all(m);
@@ -221,7 +222,7 @@ static void
dev_pager_free_page(vm_object_t object, vm_page_t m)
{
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
KASSERT((object->type == OBJT_DEVICE &&
(m->oflags & VPO_UNMANAGED) != 0),
("Managed device or page obj %p m %p", object, m));
@@ -258,11 +259,11 @@ dev_pager_getpages(vm_object_t object, v
{
int error, i;
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
error = object->un_pager.devp.ops->cdev_pg_fault(object,
IDX_TO_OFF(ma[reqpage]->pindex), PROT_READ, &ma[reqpage]);
- VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
+ VM_OBJECT_LOCK_ASSERT(object, RA_WLOCKED);
for (i = 0; i < count; i++) {
if (i != reqpage) {
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list