Multi-Level Execution Trace Based Lock Contention Analysis

multi-threaded programming is a near-universal architecture in modern computer systems. Thread based programs usually utilize locks to coordinate access to shared resources. However, contention for locks can reduce parallel efficiency and degrade scalability.In this paper, we propose an execution-trace based method to analyze lock contention problems, without requiring an application’s source code. Our methodology uses dynamic analysis through execution tracing, running in several levels of the system to collect detailed runtime data. We combine it with an extended critical path algorithm which allows us to identify locking issues occurring in userspace. The result is a framework that is able to diagnose all contention issues while adding minimal impact on the system. We propose new views and structures to model and visualize collected data, giving programmers powerful comprehension tools to address contention issues.

[1]  Laxmi N. Bhuyan,et al.  Shuffling: A framework for lock contention aware thread scheduling for multicore multiprocessor systems , 2014, 2014 23rd International Conference on Parallel Architecture and Compilation (PACT).

[2]  Brendan Gregg,et al.  Dtrace: Dynamic Tracing in Oracle Solaris, Mac OS X and Freebsd , 2011 .

[3]  M. Desnoyers,et al.  The LTTng tracer: A low impact performance and behavior monitor for GNU/Linux , 2006 .

[4]  Michel Dagenais,et al.  A Stateful Approach to Generate Synthetic Events from Kernel Traces , 2012, Adv. Softw. Eng..

[5]  Michel Dagenais,et al.  Teaching Operating Systems Concepts with Execution Visualization , 2014 .

[6]  Matthias Meyer,et al.  Selective Tracing for Dynamic Analyses , 2005 .

[7]  Thomas E. Anderson,et al.  The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors , 1990, IEEE Trans. Parallel Distributed Syst..

[8]  Hong Yan,et al.  Discovering Architectures from Running Systems , 2006, IEEE Transactions on Software Engineering.

[9]  Michel Dagenais,et al.  Efficient Model to Query and Visualize the System States Extracted from Trace Data , 2013, RV.

[10]  Nathan R. Tallent,et al.  Analyzing lock contention in multithreaded applications , 2010, PPoPP '10.

[11]  Michel Dagenais,et al.  Wait Analysis of Distributed Systems Using Kernel Tracing , 2016, IEEE Transactions on Parallel and Distributed Systems.

[12]  Li Xiong,et al.  Frequent pattern mining for kernel trace data , 2008, SAC '08.

[13]  Wenli Zhang,et al.  HaLock: Hardware-assisted lock contention detection in multithreaded applications , 2012, 2012 21st International Conference on Parallel Architectures and Compilation Techniques (PACT).

[14]  Muhammad Aleem,et al.  Jumbler: A lock-contention aware thread scheduler for multi-core parallel machines , 2017, 2017 International Conference on Recent Advances in Signal Processing, Telecommunications & Computing (SigTelCom).

[15]  Julia L. Lawall,et al.  Remote Core Locking: Migrating Critical-Section Execution to Improve the Performance of Multithreaded Applications , 2012, USENIX Annual Technical Conference.

[16]  Ling Huang,et al.  Online System Problem Detection by Mining Patterns of Console Logs , 2009, 2009 Ninth IEEE International Conference on Data Mining.

[17]  Laxmi N. Bhuyan,et al.  ADAPT: A framework for coscheduling multithreaded programs , 2013, TACO.