mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Richard Seaman, Jr." <dick@seaman.org>
To: "Bhavesh P. Davda" <bhavesh@avaya.com>
Cc: mingo@elte.hu, linux-kernel@vger.kernel.org,
	Linus Torvalds <torvalds@transmeta.com>
Subject: Re: [PATCH] SCHED_FIFO and SCHED_RR scheduler fix, kernel 2.4.18
Date: Thu, 13 Jun 2002 17:11:01 -0500	[thread overview]
Message-ID: <20020613171101.A20472@seaman.org> (raw)
In-Reply-To: <Pine.LNX.4.44.0206132007010.8525-100000@elte.hu> <3D090B4D.4060104@avaya.com>

On Thu, Jun 13, 2002 at 03:14:53PM -0600, Bhavesh P. Davda wrote:

> I would think that the logical place to add any process to the runqueue 
> would be the back of the runqueue. If all processes are ALWAYS added to 
> the back of the runqueue, then every process is GUARANTEED to eventually 
> be scheduled. No process will be starved indefinitely.

FYI, from SuSv3:

"Under the SCHED_FIFO policy, the modification of the definitional
thread lists is as follows:

1. When a running thread becomes a preempted thread, it becomes
the head of the thread list for its priority.

2. When a blocked thread becomes a runnable thread, it becomes
the tail of the thread list for its priority.

....

7. If a thread whose policy or priority has been modified other
than by pthread_setschedprio() is a running thread or is runnable,
it then becomes the tail of the thread list for its new priority.

8. If a thread whose policy or priority has been modified by
pthread_setschedprio() is a running thread or is runnable, the
effect on its position in the thread list depends on the direction
of the modification, as follows:

   1. If the priority is raised, the thread becomes the tail of
      the thread list.
   2. If the priority is unchanged, the thread does not change
      position in the thread list.
   3. If the priority is lowered, the thread becomes the head
      of the thread list.

9. When a running thread issues the sched_yield() function, the
thread becomes the tail of the thread list for its priority.

...."

Also, regarding SCHED_RR:

"...This policy shall be identical to the SCHED_FIFO policy with the
additional condition that when the implementation detects that a
running thread has been executing as a running thread for a time
period of the length returned by the sched_rr_get_interval() function
or longer, the thread shall become the tail of its thread list and
the head of that thread list shall be removed and made a running
thread......"

I'm not suggesting Linux HAS to comply with these requirements,
but its worth consideration.

-- 
Richard Seaman, Jr.        email:    dick@seaman.org
5182 N. Maple Lane         phone:    262-367-5450
Nashotah WI 53058            fax:    262-367-5852

  parent reply	other threads:[~2002-06-13 22:12 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-12 16:19 Bhavesh P. Davda
2002-06-13 18:36 ` Ingo Molnar
2002-06-13 21:14   ` Bhavesh P. Davda
2002-06-13 21:24     ` Robert Love
2002-06-13 21:27       ` Ingo Molnar
2002-06-13 21:35     ` Ingo Molnar
2002-06-13 22:11     ` Richard Seaman, Jr. [this message]
2002-06-13 22:43       ` Bhavesh P. Davda

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=20020613171101.A20472@seaman.org \
    --to=dick@seaman.org \
    --cc=bhavesh@avaya.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=torvalds@transmeta.com \
    /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

all inboxes | Powered by JetHome®