svn commit: r327587 - stable/11/sys/vm
Konstantin Belousov
kib at FreeBSD.org
Fri Jan 5 11:46:46 UTC 2018
Author: kib
Date: Fri Jan 5 11:46:45 2018
New Revision: 327587
URL: https://svnweb.freebsd.org/changeset/base/327587
Log:
MFC r327359:
Do not lock vm map in swapout_procs().
Modified:
stable/11/sys/vm/vm_swapout.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/vm/vm_swapout.c
==============================================================================
--- stable/11/sys/vm/vm_swapout.c Fri Jan 5 11:45:40 2018 (r327586)
+++ stable/11/sys/vm/vm_swapout.c Fri Jan 5 11:46:45 2018 (r327587)
@@ -727,7 +727,6 @@ swapout_procs(int action)
{
struct proc *p;
struct thread *td;
- struct vmspace *vm;
int minslptime, slptime;
bool didswap;
@@ -761,24 +760,6 @@ retry:
PROC_UNLOCK(p);
sx_sunlock(&allproc_lock);
- /*
- * Do not swapout a process that
- * is waiting for VM data
- * structures as there is a possible
- * deadlock. Test this first as
- * this may block.
- *
- * Lock the map until swapout
- * finishes, or a thread of this
- * process may attempt to alter
- * the map.
- */
- vm = vmspace_acquire_ref(p);
- if (vm == NULL)
- goto nextproc2;
- if (!vm_map_trylock(&vm->vm_map))
- goto nextproc1;
-
PROC_LOCK(p);
if (p->p_lock != 1 || (p->p_flag & (P_STOPPED_SINGLE |
P_TRACED | P_SYSTEM)) != 0)
@@ -865,17 +846,11 @@ retry:
if (swapout(p) == 0)
didswap = true;
PROC_UNLOCK(p);
- vm_map_unlock(&vm->vm_map);
- vmspace_free(vm);
goto retry;
}
}
nextproc:
PROC_UNLOCK(p);
- vm_map_unlock(&vm->vm_map);
-nextproc1:
- vmspace_free(vm);
-nextproc2:
sx_slock(&allproc_lock);
PRELE(p);
}
More information about the svn-src-stable-11
mailing list