login
Header Space

 
 

Re: Network slowdown due to CFS

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: David Schwartz <davids@...>
Cc: <linux-kernel@...>
Date: Monday, October 1, 2007 - 1:31 pm

* David Schwartz <davids@webmaster.com> wrote:


These are generic statements, but i'm _really_ interested in the 
specifics. Real, specific code that i can look at. The typical Linux 
distro consists of in execess of 500 millions of lines of code, in tens 
of thousands of apps, so there really must be some good, valid and 
"right" use of sched_yield() somewhere in there, in some mainstream app, 
right? (because, as you might have guessed it, in the past decade of 
sched_yield() existence i _have_ seen my share of sched_yield() 
utilizing user-space code, and at the moment i'm not really impressed by 
those examples.)
 
Preferably that example should show that the best quality user-space 
lock implementation in a given scenario is best done via sched_yield(). 
Actual code and numbers. (And this isnt _that_ hard. I'm not asking for 
a full RDBMS implementation that must run through SQL99 spec suite. This 
is about a simple locking primitive, or a simple pointer to an existing 
codebase.)


(user-space spinlocks are broken beyond words for anything but perhaps 
SCHED_FIFO tasks.)


at a quick glance this seems broken too - but if you show the specific 
code i might be able to point out the breakage in detail. (One 
underlying problem here appears to be fairness: a quick unlock/lock 
sequence may starve out other threads. yield wont solve that fundamental 
problem either, and it will introduce random latencies into apps using 
this memory allocator.)


sure. (and i described that flag on lkml before) The sched_yield flag 
does two things:

 - if 0 ("opportunistic mode"), then the task will reschedule to any
   other task that is in "bigger need for CPU time" than the currently 
   running task, as indicated by CFS's ->wait_runtime metric. (or as 
   indicated by the similar ->vruntime metric in sched-devel.git)

 - if 1 ("agressive mode"), then the task will be one-time requeued to 
   the right end of the CFS rbtree. This means that for one instance, 
   all other tasks will run before this task will run again - after that 
   this task's natural ordering within the rbtree is restored.


do you realize that this "desired behavior" you just described is not 
achieved by the old scheduler, and that this random behavior _is_ the 
main problem here? If yield was well-specified then we could implement 
it in a well-specified way - even if the API was poor.

But fact is that it is _not_ well-specified, and apps grew upon a random 
scheduler implementation details in random ways. (in the lkml discussion 
about this topic, Linus offered a pretty sane theoretical definition for 
yield but it's not simple to implement [and no scheduler implements it 
at the moment] - nor will it map to the old scheduler's yield behavior 
so we'll end up breaking more apps.)

	Ingo
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Network slowdown due to CFS, Martin Michlmayr, (Wed Sep 26, 4:52 am)
Re: Network slowdown due to CFS, Mike Galbraith, (Wed Sep 26, 6:23 am)
Re: Network slowdown due to CFS, Martin Michlmayr, (Wed Sep 26, 6:48 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Wed Sep 26, 7:21 am)
Re: Network slowdown due to CFS, Martin Michlmayr, (Wed Sep 26, 7:29 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Thu Sep 27, 5:49 am)
Re: Network slowdown due to CFS, Martin Michlmayr, (Thu Sep 27, 6:54 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Thu Sep 27, 6:56 am)
Re: Network slowdown due to CFS, Martin Michlmayr, (Thu Sep 27, 7:12 am)
RE: Network slowdown due to CFS, David Schwartz, (Wed Sep 26, 8:00 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Wed Sep 26, 9:31 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Thu Sep 27, 5:30 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Thu Sep 27, 5:46 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Thu Sep 27, 8:27 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Thu Sep 27, 9:31 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Thu Sep 27, 10:42 am)
Re: Network slowdown due to CFS, Nick Piggin, (Fri Sep 28, 2:10 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Mon Oct 1, 4:43 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Tue Oct 2, 5:26 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Mon Oct 1, 12:25 pm)
Re: Network slowdown due to CFS, Jarek Poplawski, (Tue Oct 2, 5:03 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Tue Oct 2, 9:39 am)
Re: Network slowdown due to CFS, Chris Friesen, (Mon Oct 1, 12:55 pm)
Re: Network slowdown due to CFS, Ingo Molnar, (Mon Oct 1, 1:09 pm)
Re: Network slowdown due to CFS, Chris Friesen, (Mon Oct 1, 1:45 pm)
Re: iperf yield usage, Ingo Molnar, (Mon Oct 1, 3:09 pm)
RE: Network slowdown due to CFS, David Schwartz, (Mon Oct 1, 12:49 pm)
RE: Network slowdown due to CFS, Rusty Russell, (Wed Oct 3, 8:31 pm)
Re: Network slowdown due to CFS, Helge Hafting, (Wed Oct 3, 7:31 am)
Re: Network slowdown due to CFS, Arjan van de Ven, (Mon Oct 1, 3:53 pm)
RE: Network slowdown due to CFS, David Schwartz, (Mon Oct 1, 6:17 pm)
Re: Network slowdown due to CFS, Arjan van de Ven, (Mon Oct 1, 6:35 pm)
RE: Network slowdown due to CFS, David Schwartz, (Mon Oct 1, 6:44 pm)
Re: Network slowdown due to CFS, Arjan van de Ven, (Mon Oct 1, 6:55 pm)
RE: Network slowdown due to CFS, David Schwartz, (Tue Oct 2, 11:37 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Wed Oct 3, 3:15 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Mon Oct 1, 1:31 pm)
RE: Network slowdown due to CFS, David Schwartz, (Mon Oct 1, 2:23 pm)
Re: yield API, Ingo Molnar, (Tue Oct 2, 2:46 am)
Re: yield API, Jesper Juhl, (Wed Dec 12, 6:39 pm)
Re: yield API, Kyle Moffett, (Thu Dec 13, 12:43 am)
RE: yield API, David Schwartz, (Thu Dec 13, 4:10 pm)
Re: yield API, Eric St-Laurent, (Tue Oct 2, 5:57 pm)
Re: yield API, linux-os (Dick Johnson), (Tue Oct 2, 7:50 am)
Re: yield API, Douglas McNaught, (Tue Oct 2, 11:24 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Tue Oct 2, 2:26 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Tue Oct 2, 2:08 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Tue Oct 2, 2:06 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Wed Oct 3, 4:02 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Wed Oct 3, 4:16 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Wed Oct 3, 4:56 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Wed Oct 3, 5:10 am)
Re: Network slowdown due to CFS, Casey Dahlin, (Thu Oct 4, 1:33 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Wed Oct 3, 5:50 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Sun Oct 7, 3:18 am)
Re: Network slowdown due to CFS, Dmitry Adamushko, (Wed Oct 3, 6:55 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Wed Oct 3, 7:40 am)
Re: yield, Ingo Molnar, (Wed Oct 3, 7:56 am)
Re: yield, Jarek Poplawski, (Wed Oct 3, 8:16 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Wed Oct 3, 7:22 am)
Re: Network slowdown due to CFS, Dmitry Adamushko, (Wed Oct 3, 6:58 am)
Re: Network slowdown due to CFS, Jarek Poplawski, (Wed Oct 3, 7:20 am)
Re: Network slowdown due to CFS, Andi Kleen, (Tue Oct 2, 2:47 am)
Re: Network slowdown due to CFS, Stephen Hemminger, (Wed Sep 26, 11:46 am)
Re: Network slowdown due to CFS, Stephen Hemminger, (Wed Sep 26, 11:40 am)
Re: Network slowdown due to CFS, Mike Galbraith, (Wed Sep 26, 6:20 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Wed Sep 26, 5:34 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Wed Sep 26, 5:47 am)
Re: Network slowdown due to CFS, Martin Michlmayr, (Wed Sep 26, 6:08 am)
Re: Network slowdown due to CFS, Ingo Molnar, (Wed Sep 26, 6:18 am)
speck-geostationary