summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2005-05-22 21:06:07 +0000
committeralc <alc@FreeBSD.org>2005-05-22 21:06:07 +0000
commit9c80b4966970886f4b2048444beb6e62fb4e1d58 (patch)
treef1cbf330e87a36ca1bb09962434a37275f83827b /sys
parent628178d7045352fe62aca4e906107418b73a6adb (diff)
downloadFreeBSD-src-9c80b4966970886f4b2048444beb6e62fb4e1d58.zip
FreeBSD-src-9c80b4966970886f4b2048444beb6e62fb4e1d58.tar.gz
Swap in can occur safely without Giant. Release Giant on entry to
scheduler().
Diffstat (limited to 'sys')
-rw-r--r--sys/vm/vm_glue.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c
index cd9eb15..6122ea2 100644
--- a/sys/vm/vm_glue.c
+++ b/sys/vm/vm_glue.c
@@ -530,7 +530,6 @@ faultin(p)
#else /* !NO_SWAPPING */
struct thread *td;
- GIANT_REQUIRED;
PROC_LOCK_ASSERT(p, MA_OWNED);
/*
* If another process is swapping in this process,
@@ -578,7 +577,7 @@ faultin(p)
*
* XXXKSE - process with the thread with highest priority counts..
*
- * Giant is still held at this point, to be released in tsleep.
+ * Giant is held on entry.
*/
/* ARGSUSED*/
static void
@@ -592,7 +591,7 @@ scheduler(dummy)
int ppri;
mtx_assert(&Giant, MA_OWNED | MA_NOTRECURSED);
- /* GIANT_REQUIRED */
+ mtx_unlock(&Giant);
loop:
if (vm_page_count_min()) {
OpenPOWER on IntegriCloud