Date: Thu, 06 Mar 2008 15:40:10 +0200 From: Andriy Gapon <avg@icyb.net.ua> To: John Baldwin <jhb@freebsd.org> Cc: freebsd-hackers@freebsd.org Subject: Re: sched_ule: roundrobin_callout replacement ? Message-ID: <47CFF43A.9070704@icyb.net.ua> In-Reply-To: <200803060755.04607.jhb@freebsd.org> References: <47B9A359.9080502@icyb.net.ua> <200803060755.04607.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
on 06/03/2008 14:55 John Baldwin said the following: > On Monday 18 February 2008 10:25:13 am Andriy Gapon wrote: >> I see that sched_4bsd has a NOP callout with a purpose of forcing a >> context switch (via softclock), so that something like a preemption >> could happen (e.g. for threads in a tight calculation loop). >> What serves the similar purpose for sched_ule? >> Or, how sched_ule deals with the issue without needing softclock's help? > > It's gone in newer versions of 4BSD in HEAD actually. ULE does it by checking > in sched_clock() to see if the current thread has used up its quantum. If so > it sets TDF_NEEDRESCHED. > Thank you. But where/when does actual thread switch happens? E.g. I have two userland processes that do something like "while(1);", what is the event that can switch from one to the other? -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47CFF43A.9070704>