You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by GitBox <gi...@apache.org> on 2019/03/23 14:21:22 UTC

[GitHub] [qpid-dispatch] cliffjansen opened a new pull request #476: DISPATCH-1295 - Reduce lock contention and make fewer system calls.

cliffjansen opened a new 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:
users@infra.apache.org


With regards,
Apache Git Services

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