Skip site navigation (1)Skip section navigation (2)
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>