Re: [PATCH v3 0/3] epoll: introduce round robin wakeup mode

From
Andrew Morton <akpm@linux-foundation.org>
Date
2015-02-27 22:31:58
Also in
linux-fsdevel, lkml
Reply to
Jason Baron, 2015-02-27
On Fri, 27 Feb 2015 17:01:32 -0500 Jason Baron [off-list ref] wrote:
quoted
I don't really understand the need for rotation/round-robin.  We can
solve the thundering herd via exclusive wakeups, but what is the point
in choosing to wake the task which has been sleeping for the longest
time?  Why is that better than waking the task which has been sleeping
for the *least* time?  That's probably faster as that task's data is
more likely to still be in cache.

The changelogs talks about "starvation" but they don't really say what
this term means in this context, nor why it is a bad thing.
I'm still not getting it.
So the idea with the 'rotation' is to try and distribute the
workload more evenly across the worker threads.
Why?
We currently
tend to wake up the 'head' of the queue over and over and
thus the workload for us is not evenly distributed.
What's wrong with that?
In fact, we
have a workload where we have to remove all the epoll sets
and then re-add them in a different order to improve the situation.
Why?
We are trying to avoid this workaround and in addition avoid
thundering wakeups when possible (using exclusive as you
mention).

A better way to describe a patchset like this is to start out
describing what the user sees: what is wrong with the current kernel
behaviour and how will it be improved?  Once that is understood then
start getting into kernel internal details.


Jon's explanation was much more useful.  Was it accurate?
Thread (6 messages) 6 messages, 4 authors, last reply 2015-03-05
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help