You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Clifford Jansen (Jira)" <ji...@apache.org> on 2020/08/05 07:05:00 UTC

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

     [ https://issues.apache.org/jira/browse/PROTON-2130?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Clifford Jansen resolved PROTON-2130.
-------------------------------------
    Resolution: Fixed

> 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