FineLock: Automatically Refactoring Coarse-grained Locks into Fine-grained Locks
Lock is a frequently-used synchronization mechanism to enforce exclusive access to a shared resource. However, lock-based concurrent programs are susceptible to lock contention, which leads to low performance and poor scalability. Furthermore, inappropriate granularity of a lock makes lock contention even worse. Compared to coarse-grained lock, fine-grained lock can mitigate lock contention but difficult to use. Converting coarse-grained lock into fine-grained lock manually is not only error-prone and tedious, but also requires a lot of expertise. In this paper, we propose to leverage program analysis techniques and pushdown automaton to automatically covert coarse-grained locks into fine-grained locks to reduce lock contention. We developed a prototype \textit{FineLock} and evaluates it on 5 projects. The evaluation results demonstrate \textit{FineLock} can refactor 1,546 locks in an average of 27.6 seconds, including converting 129 coarse-grained locks into fine-grained locks and 1,417 coarse-grained locks into read/write locks. By automatically providing potential refactoring recommendations, our tool saves a lot of efforts for developers.
Wed 22 Jul Times are displayed in time zone: Tijuana, Baja California change
16:30 - 17:33: TOOL DEMOTool Demonstration at Zoom Chair(s): Owolabi LegunsenCornell University Public Live Stream/Recording. Registered participants should join via the Zoom link distributed in Slack. | |||
16:30 - 16:37 Talk | CPSDebug: A Tool for Failure Explanation Tool Demonstration Ezio BartocciTechnische Universität Wien, Niveditha ManjunathVienna University of Technology, Leonardo MarianiUniversity of Milano Bicocca, Cristinel MateisAIT Austrian Institute of Technology GmbH, Dejan NickovicAustrian Institute of Technology, Fabrizio PastoreUniversity of Luxembourg | ||
16:37 - 16:44 Talk | Crowdsourced Requirements Generation for Automatic Testing via Knowledge Graph Tool Demonstration | ||
16:44 - 16:51 Talk | EShield: Protect Smart Contracts against Reverse Engineering Tool Demonstration Wentian YanPeking University, Jianbo GaoPeking University, Zhenhao WuPeking University and Boya Blockchain Inc, Yue LiPeking University, Zhi GuanPeking University, Qingshan LiPeking University, Zhong Chen | ||
16:51 - 16:58 Talk | Echidna: Effective, Usable, and Fast Fuzzing for Smart Contracts Tool Demonstration Gustavo GriecoTrail of Bits, Will SongTrail of Bits, Artur CyganTrail of Bits, Josselin FeistTrail of Bits, Alex GroceNorthern Arizona University | ||
16:58 - 17:05 Talk | FineLock: Automatically Refactoring Coarse-grained Locks into Fine-grained Locks Tool Demonstration Yang ZhangHebei University of Science and Technology, Shuai ShaoHebei University of Science and Technology, Juan ZhaiRutgers University, Shiqing MaRutgers University, USA | ||
17:05 - 17:12 Talk | ObjSim: Lightweight Automatic Patch Prioritization via Object Similarity Tool Demonstration Ali GhanbariThe University of Texas at Dallas Pre-print | ||
17:12 - 17:19 Talk | ProFL: A Fault Localization Framework for Prolog Tool Demonstration George ThompsonNorth Carolina A&T State University, Allison SullivanThe University of Texas at Arlington | ||
17:19 - 17:26 Talk | TauJud: Test Augmentation of Machine Learning in Judicial Documents Tool Demonstration Zichen GuoNanjing University, Jiawei LiuNanjing University, Tieke HeNanjing University, Zhuoyang LiNanjing University, Peitian ZhangzhuNanjing University | ||
17:26 - 17:33 Talk | Test Recommendation System Based on Slicing Coverage Filtering Tool Demonstration Ruixiang QianState Key Laboratory for Novel Software Technology, Nanjing University, Yuan ZhaoState Key Laboratory for Novel Software Technology, Nanjing University, Duo MenState Key Laboratory for Novel Software Technology, Nanjing University, Yang FengNanjing University, Qingkai ShiThe Hong Kong University of Science and Technology, Yong HuangState Key Laboratory for Novel Software Technology, Nanjing University, Zhenyu ChenNanjing University DOI |