You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2019/11/07 09:25:00 UTC

[jira] [Commented] (PROTON-2130) Improve epoll_wait processing in epoll proactor

    [ https://issues.apache.org/jira/browse/PROTON-2130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16969079#comment-16969079 ] 

ASF GitHub Bot commented on PROTON-2130:
----------------------------------------

cliffjansen commented on pull request #202: PROTON-2130: epoll proactor changed to use serialized calls to epoll_…
URL: https://github.com/apache/qpid-proton/pull/202
 
 
   New poller with single caller to epoll_wait as described in PROTON-2130.
   
   Also new: the "poller" thread looks through the new events and looks for warm threads that could be re-assigned to previous context work.
   
   This pull request is ready to try out but not yet ready to merge.  Known issues include:
   
    - rare assertion failures in proton ctest using debug build
    - some test failures in QPID dispatch router
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Improve epoll_wait processing in epoll proactor
> -----------------------------------------------
>
>                 Key: PROTON-2130
>                 URL: https://issues.apache.org/jira/browse/PROTON-2130
>             Project: Qpid Proton
>          Issue Type: Improvement
>          Components: proton-c
>    Affects Versions: proton-c-0.29.0
>            Reporter: Clifford Jansen
>            Assignee: Clifford Jansen
>            Priority: Major
>
> Change epoll proactor to use epoll_wait() more efficiently and more canonically.
> Old way: each thread without work called epoll_wait() for 1 event.
> New: when known work exhausted, only one thread calls epoll_wait for N events and schedules work for the other threads to execute.
> The downside to the old way is that for each event, all threads in epoll_wait() are woken up but only one "wins" (obtaining the event to process) while the rest go back to sleep.
> In addition to wasteful use of cpu, this behavior also shows up in performance monitoring tools and clutters the analysis of profiling data and flame graphs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org