linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Mike Galbraith <efault@gmx.de>
Cc: Bill Davidsen <davidsen@tmr.com>,
	Olivier Galibert <galibert@pobox.com>,
	<linux-kernel@vger.kernel.org>
Subject: Re: [Linux-ia64] Re: web page on O(1) scheduler
Date: Mon, 2 Jun 2003 10:05:49 +0200 (CEST)	[thread overview]
Message-ID: <Pine.LNX.4.44.0306020949520.3375-100000@localhost.localdomain> (raw)
In-Reply-To: <5.2.0.9.2.20030529062657.01fcaa50@pop.gmx.net>


On Thu, 29 May 2003, Mike Galbraith wrote:

> [...] What makes more sense to me than the current implementation is to
> rotate the entire peer queue when a thread expires... ie pull in the
> head of the expired queue into the tail of the active queue at the same
> time so you always have a player if one exists.  (you'd have to select
> queues based on used cpu time to make that work right though)

we have tried all sorts of more complex yield() schemes before - they
sucked for one or another workload. So in 2.5 i took the following path:  
make yield() _simple_ and effective, ie. expire the yielding task (push it
down the runqueue roughly halfway, statistically) and dont try to be too
smart doing it. All the real yield() users (mostly in the kernel) want it
to be an efficient way to avoid livelocks. The old 2.4 yield
implementation had the problem of enabling a ping-pong between two
higher-prio yielding processes, until they use up their full timeslice.

(we could do one more thing that still keeps the thing simple: we could
re-set the yielding task's timeslice instead of the current 'keep the
previous timeslice' logic.)

OpenOffice used to use yield() as a legacy of 'green thread'
implementation - where userspace threads needed to do periodic yield()s to
get any sort of multitasking behavior.

	Ingo


  reply	other threads:[~2003-06-02  7:52 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-21  6:49 web page on O(1) scheduler David Mosberger
2003-05-21  9:01 ` Arjan van de Ven
2003-05-21 10:40   ` [Linux-ia64] " Duraid Madina
2003-05-21 10:43     ` Christoph Hellwig
2003-05-21 13:12     ` Arjan van de Ven
2003-05-21 13:51       ` Olivier Galibert
2003-05-28 22:12         ` Bill Davidsen
     [not found]         ` <Pine.LNX.3.96.1030528180909.21414B-100000@gatekeeper.tmr.c om>
2003-05-29  5:59           ` Mike Galbraith
2003-06-02  8:05             ` Ingo Molnar [this message]
2003-06-04  4:07               ` Bill Davidsen
     [not found]             ` <Pine.LNX.4.44.0306020949520.3375-100000@localhost.localdom ain>
2003-06-02 13:51               ` Mike Galbraith
2003-06-04  3:52             ` Bill Davidsen
2003-06-04  4:55               ` David Schwartz
     [not found]             ` <Pine.LNX.3.96.1030603234616.16495B-100000@gatekeeper.tmr.c om>
2003-06-04  7:13               ` Mike Galbraith
2003-06-04 15:30                 ` Jan Harkes
2003-05-21 19:18       ` Duraid Madina
2003-05-21 20:03         ` Helge Hafting
2003-05-21 22:59         ` Alan Cox
2003-05-21 15:18   ` David Mosberger
2003-05-23  1:07   ` [Linux-ia64] " Hans Boehm
2003-05-23  8:30     ` Arjan van de Ven
2003-05-21  9:26 ` Mike Galbraith
2003-05-21  9:30   ` Mike Galbraith
2003-05-21 17:56   ` David Mosberger
2003-05-21 20:46     ` Mike Galbraith
2003-05-22  9:52     ` Mike Galbraith
2003-05-22 16:25       ` Mike Galbraith
2003-05-22 17:58         ` David Mosberger
2003-05-27 15:16         ` [case closed] " Mike Galbraith
2003-06-03 20:59       ` sched.c gives ICE [Was: Re: web page on O(1) scheduler] J.A. Magallon
2003-06-03 22:29         ` Mike Galbraith
2003-06-22 22:03         ` J.A. Magallon
2003-06-22 22:10           ` J.A. Magallon
2003-05-22  0:38   ` web page on O(1) scheduler Rik van Riel
     [not found]   ` <Pine.LNX.4.50L.0305212038120.5425-100000@imladris.surriel. com>
2003-05-22  5:52     ` Mike Galbraith
2003-05-22 14:47       ` Valdis.Kletnieks
2003-05-22 16:12         ` Mike Galbraith
2003-05-25  9:17       ` Mike Galbraith
2003-05-21 18:31 ` [Linux-ia64] " David Mosberger
2003-05-21 20:00   ` Cyclades Cyclom-Y ISA on 2.5.69 John Stoffel
2003-05-23 17:48 [Linux-ia64] Re: web page on O(1) scheduler Boehm, Hans
2003-05-23 18:04 ` Davide Libenzi
2003-05-24  0:10 Boehm, Hans
2003-05-24  0:20 ` Davide Libenzi
2003-05-24  0:53 Boehm, Hans
2003-05-24  5:38 ` Davide Libenzi
2003-05-24 14:43   ` Davide Libenzi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.44.0306020949520.3375-100000@localhost.localdomain \
    --to=mingo@elte.hu \
    --cc=davidsen@tmr.com \
    --cc=efault@gmx.de \
    --cc=galibert@pobox.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).