[
https://issues.apache.org/jira/browse/DISPATCH-1295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16799659#comment-16799659
]
ASF GitHub Bot commented on DISPATCH-1295:
------------------------------------------
cliffjansen commented on pull request #476: DISPATCH-1295 - Reduce lock
contention and make fewer system calls.
URL: https://github.com/apache/qpid-dispatch/pull/476
Flamegraphs show on a single quiver run that there is lock contention in
setting timers. Locks are held across system calls and also cause thread
stalls as seen in offcpu runs.
This change restricts the main timer lock to updating internal data
structures. A second lock is used to prevent setting timer values out of order.
The main benefit is that immediate timer calls have much less contention
with non-immediate timers.
Using a standard quiver C client run of 9,000,000 message, which lasts about
a minute, we get 19% of the offcpu related to qd_timer_schedule and
qd_timer_visit. This drops to 0 with the change.
Regular on-cpu profiling samples in qd_timer drop from 9.1% of samples to
0.2%. Samples in qd_immediate drop modestly from 0.6% to 0.5%.
----------------------------------------------------------------
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:
[email protected]
> reduce cpu and locking in timer/immediate code.
> -----------------------------------------------
>
> Key: DISPATCH-1295
> URL: https://issues.apache.org/jira/browse/DISPATCH-1295
> Project: Qpid Dispatch
> Issue Type: Improvement
> Components: Container
> Affects Versions: 1.6.0
> Reporter: Cliff Jansen
> Priority: Major
>
> Follow on to DISPATCH-1274.
> Locks held for longer time than necessary (through system calls).
> Spurious calls to timer_visit() that should be restricted to
> immediate_visit().
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]