Date: Fri, 23 Nov 2001 20:11:23 -0800 From: Peter Wemm <peter@wemm.org> To: Luigi Rizzo <rizzo@aciri.org>, John Baldwin <jhb@FreeBSD.ORG>, current@FreeBSD.ORG Subject: Re: where is the idle_loop in current ? Message-ID: <20011124041123.C0DE038FF@overcee.netplex.com.au> In-Reply-To: <20011124023641.56C0F380D@overcee.netplex.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
Peter Wemm wrote: > Luigi Rizzo wrote: > > In order to port my network polling stuff to current, I was looking > > at ways to do things within the "idle loop", and was pointed to > > the idle_proc() or vm_pagezero() . I am listing below the code > > for these kernel threads (I hope the name is the correct one). > > idle_proc isn't a real process. It has to be guaranteed to be runnable > at any time. pgzero is a real idle priority thread. > > > I do not follow, however, the reason why these two threads periodically > > give up the CPU, given that their priority is (i guess) lower than > > any other thread in the system, so any event that should wake up > > a thread would immediately cause their preemption. > > Where am i wrong ? > > processes while in kernel mode cannot be preempted by another higher > priority process. Once they have the cpu, they either have to return > to userland (which kernel threads dont do), or block on something, or give > up the cpu. One additional comment.. John Baldwin has a work-in-progress that addresses a lot of these issues. Cheers, -Peter -- Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011124041123.C0DE038FF>