Thread (2 messages) flat view 2 messages, 2 authors, 2015-02-25

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

From: Ingo Molnar <hidden>
Date: 2015-02-25 07:38:14
Also in: linux-fsdevel, lkml

* Jason Baron [off-list ref] wrote:
Hi,

When we are sharing a wakeup source among multiple epoll 
fds, we end up with thundering herd wakeups, since there 
is currently no way to add to the wakeup source 
exclusively. This series introduces a new EPOLL_ROTATE 
flag to allow for round robin exclusive wakeups.

I believe this patch series addresses the two main 
concerns that were raised in prior postings. Namely, that 
it affected code (and potentially performance) of the 
core kernel wakeup functions, even in cases where it was 
not strictly needed, and that it could lead to wakeup 
starvation (since we were are no longer waking up all 
waiters). It does so by adding an extra layer of 
indirection, whereby waiters are attached to a 'psuedo' 
epoll fd, which in turn is attached directly to the 
wakeup source.
  sched/wait: add __wake_up_rotate()
 include/linux/wait.h           |  1 +
 kernel/sched/wait.c            | 27 ++++++++++++++++++++++
So the scheduler bits are looking good to me in principle, 
because they just add a new round-robin-rotating wakeup 
variant and don't disturb the others.

Is there consensus on the epoll ABI changes? With Davide 
Libenzi inactive eventpoll appears to be without a 
dedicated maintainer since 2011 or so. Is there anyone who 
knows the code and its usages in detail and does final ABI 
decisions on eventpoll - Andrew, Al or Linus?

Thanks,

	Ingo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help