Messages in this thread | | | Date | Thu, 13 Jun 2002 16:43:38 -0600 | From | "Bhavesh P. Davda" <> | Subject | Re: [PATCH] SCHED_FIFO and SCHED_RR scheduler fix, kernel 2.4.18 |
| |
And my patch *MAKES* it compliant with these definitions. The scheduler was *NOT* compliant with these definitions.
You've quoted me out of context below. My statement that you quote applies to SCHED_OTHER processes.
Please see my original post with the patch. And thanks for reinforcing what I was saying!
- Bhavesh
Richard Seaman, Jr. wrote: > 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. >
-- Bhavesh P. Davda Avaya Inc Room B3-B03 E-mail : bhavesh@avaya.com 1300 West 120th Avenue Phone : (303) 538-4438 Westminster, CO 80234 Fax : (303) 538-3155
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |