Clifford Jansen created PROTON-2130:
---------------------------------------

             Summary: 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


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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to