Messages in this thread | | | Date | Fri, 13 Jun 2008 08:41:39 -0600 | From | "Gregory Haskins" <> | Subject | Re: [sched-devel, patch-rfc] rework of "prioritize non-migratabletasks over migratable ones" |
| |
Sorry for topposting....still on vaca via blackberry..
I am in favor of dropping too...this patch was really just an RFC in response to Dmity's observation....its probably too premature to include this type of thing, if ever at all..
-Greg -----Original Message----- From: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Ingo Molnar <mingo@elte.hu> To: Dmitry Adamushko <dmitry.adamushko@gmail.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Gregory Haskins <GHaskins@novell.com> Cc: <linux-kernel@vger.kernel.org>
Sent: 6/13/2008 7:08:04 AM Subject: Re: [sched-devel, patch-rfc] rework of "prioritize non-migratabletasks over migratable ones"
On Wed, 2008-06-11 at 12:05 +0200, Dmitry Adamushko wrote: > 2008/6/11 Peter Zijlstra <a.p.zijlstra@chello.nl>: > > On Wed, 2008-06-11 at 00:58 +0200, Dmitry Adamushko wrote: > >> Hi Gregory, > >> > >> > >> regarding this commit: 45c01e824991b2dd0a332e19efc4901acb31209f > >> > >> > >> I think we can do it simpler. Please take a look at the patch below. > >> > >> Instead of having 2 separate arrays (which is + ~800 bytes on x86_32 and twice so on x86_64), > >> let's add "exclusive" (the ones that are bound to this CPU) tasks to the head of the queue > >> and "shared" ones -- to the end. > >> > >> In case of a few newly woken up "exclusive" tasks, they are 'stacked' (not queued as now), meaning that > >> a task {i+1} is being placed in front of the previously woken up task {i}. But I don't think that > >> this behavior may cause any realistic problems. > > > > Doesn't this violate POSIX ? > > > > If so, then the idea of "prioritize non-migratable tasks over > migratable ones" violates it, not just an artefact of this particular > implementation. > > No matter which implementation is used, we have a situation when a > woken-up single-CPU-bound task (let's call it 'p') can preempt a > current task with effects as follows: > > - 'current' is not guaranteed to get another CPU; > > - there might have been other pending tasks (of equal prio) on this > queue. As a result, 'p' starts running before them violating currently > used (explicitly requested by POSIX?) round-robin behavior.
> We may just consider dropping this idea completely. > (my 0.02$)
If we cannot guarantee POSIX compliant scheduling I think we should get rid of this.
| |