Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Jul 1998 18:51:22 +0200
From:      Stefan Eggers <seggers@semyam.dinoco.de>
To:        zhihuizhang <bf20761@binghamton.edu>
Cc:        freebsd-hackers@FreeBSD.ORG, seggers@semyam.dinoco.de
Subject:   Re: Questions on inactive page queue 
Message-ID:  <199807221651.SAA20605@semyam.dinoco.de>
In-Reply-To: Your message of "Tue, 21 Jul 1998 16:52:12 EDT." <Pine.SOL.L3.93.980721164337.25658A-100000@bingsun2> 

next in thread | previous in thread | raw e-mail | index | archive | help
> (2) I find that the VM fault routine vm_fault() can call tsleep() to
> sleep! This contradict my knowledge that interrupt routine can never go to
> sleep. How can this happen?

When you get a normal interrupt there might be whatever process run-
ning at that time and you would make it go to sleep then if sleeping
in interrupts were OK.  Now imagine the X server sleeping because of a
printer port interrupt for example.

And sometimes there even is no process running at all.  W/o a process
tsleep isn't able to do its work as far as I know.

Someone please correct me if I'm wrong with this.

In contrast to this a page fault for a process's address space is
always associated with that process and that one you put to sleep.
You will always pick the right process and are guaranteed to have one.
Doing a sleep then is OK.

Stefan.
-- 
Stefan Eggers                 Lu4 yao2 zhi1 ma3 li4,
Max-Slevogt-Str. 1            ri4 jiu3 jian4 ren2 xin1.
51109 Koeln
Federal Republic of Germany

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199807221651.SAA20605>