diff options
author | alc <alc@FreeBSD.org> | 2005-05-22 21:06:07 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2005-05-22 21:06:07 +0000 |
commit | 9c80b4966970886f4b2048444beb6e62fb4e1d58 (patch) | |
tree | f1cbf330e87a36ca1bb09962434a37275f83827b /sys | |
parent | 628178d7045352fe62aca4e906107418b73a6adb (diff) | |
download | FreeBSD-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.c | 5 |
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()) { |