Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
SPORE: Combining Symmetry and Partial Order Reduction
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 219, Pages 1781–1803https://doi.org/10.1145/3656449Symmetry reduction (SR) and partial order reduction (POR) aim to scale up model checking by exploiting the underlying program structure: SR avoids exploring executions equivalent up to some permutation of symmetric threads, while POR avoids exploring ...
- ArticleApril 2024
Enhancing GenMC’s Usability and Performance
Tools and Algorithms for the Construction and Analysis of SystemsApr 2024, Pages 66–84https://doi.org/10.1007/978-3-031-57249-4_4AbstractGenMC is a state-of-the-art stateless model checker that can verify safety properties of concurrent C/C++ programs under a wide range of memory consistency models, such as SC, TSO, RC11, and IMM.
In this paper, we improve the performance and ...
- ArticleJuly 2023
Unblocking Dynamic Partial Order Reduction
AbstractExisting dynamic partial order reduction (DPOR) algorithms scale poorly on concurrent data structure benchmarks because they visit a huge number of blocked executions due to spinloops.
In response, we develop Awamoche, a sound, complete, and ...
- ArticleApril 2023
Reconciling Preemption Bounding with DPOR
Tools and Algorithms for the Construction and Analysis of SystemsApr 2023, Pages 85–104https://doi.org/10.1007/978-3-031-30823-9_5AbstractThere are two major techniques for scaling up stateless model checking: dynamic partial order reduction (DPOR), which only explores executions that differ in the ordering of racy accesses, and preemption bounding, which only explores executions ...
Kater: Automating Weak Memory Model Metatheory and Consistency Checking
Proceedings of the ACM on Programming Languages (PACMPL), Volume 7, Issue POPLArticle No.: 19, Pages 544–572https://doi.org/10.1145/3571212The metatheory of axiomatic weak memory models covers questions like the correctness of compilation mappings from one model to another and the correctness of local program transformations according to a given model---topics usually requiring lengthy ...
Model checking for a multi-execution memory model
Proceedings of the ACM on Programming Languages (PACMPL), Volume 6, Issue OOPSLA2Article No.: 152, Pages 758–785https://doi.org/10.1145/3563315Multi-execution memory models, such as Promising and Weakestmo, are an advanced class of weak memory consistency models that justify certain outcomes of a concurrent program by considering multiple candidate executions collectively. While this key ...
Truly stateless, optimal dynamic partial order reduction
Proceedings of the ACM on Programming Languages (PACMPL), Volume 6, Issue POPLArticle No.: 49, Pages 1–28https://doi.org/10.1145/3498711Dynamic partial order reduction (DPOR) verifies concurrent programs by exploring all their interleavings up to some equivalence relation, such as the Mazurkiewicz trace equivalence. Doing so involves a complex trade-off between space and time. Existing ...
- ArticleJuly 2021
GenMC: A Model Checker for Weak Memory Models
AbstractGenMC is an LLVM-based state-of-the-art stateless model checker for concurrent C/C++ programs. Its modular infrastructure allows it to support complex memory models, such as RC11 and IMM, and makes it easy to extend to support further axiomatic ...
- ArticleMay 2021
BAM: Efficient Model Checking for Barriers
AbstractStateless Model Checking (SMC) and Dynamic Partial Order Reduction (DPOR) are prominent techniques that are often used together to verify safety properties of concurrent programs under a variety of different memory models. Although existing SMC/...
- research-articleJanuary 2021
PerSeVerE: persistency semantics for verification under ext4
Proceedings of the ACM on Programming Languages (PACMPL), Volume 5, Issue POPLArticle No.: 43, Pages 1–29https://doi.org/10.1145/3434324Although ubiquitous, modern filesystems have rather complex behaviours that are hardly understood by programmers and lead to severe software bugs such as data corruption. As a first step to ensure correctness of software performing file I/O, we formalize ...
HMC: Model Checking for Hardware Memory Models
ASPLOS '20: Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating SystemsMarch 2020, Pages 1157–1171https://doi.org/10.1145/3373376.3378480Stateless Model Checking (SMC) is an effective technique for verifying safety properties of a concurrent program by systematically exploring all of its executions. While SMC has been extended to handle hardware memory models like x86-TSO, it does not ...
Effective lock handling in stateless model checking
Proceedings of the ACM on Programming Languages (PACMPL), Volume 3, Issue OOPSLAArticle No.: 173, Pages 1–26https://doi.org/10.1145/3360599Stateless Model Checking (SMC) is a verification technique for concurrent programs that checks for safety violations by exploring all possible thread interleavings. SMC is usually coupled with Partial Order Reduction (POR), which exploits the ...
Model checking for weakly consistent libraries
PLDI 2019: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and ImplementationJune 2019, Pages 96–110https://doi.org/10.1145/3314221.3314609We present GenMC, a model checking algorithm for concurrent programs that is parametric in the choice of memory model and can be used for verifying clients of concurrent libraries. Subject to a few basic conditions about the memory model, our algorithm ...
- articleJune 2019
Stateless model checking of the Linux kernel's read---copy update (RCU)
International Journal on Software Tools for Technology Transfer (STTT) (STTT), Volume 21, Issue 3June 2019, Pages 287–306https://doi.org/10.1007/s10009-019-00514-6Read---copy update (RCU) is a synchronization mechanism used heavily in key components of the Linux kernel, such as the virtual filesystem (VFS), to achieve scalability by exploiting RCU's ability to allow concurrent reads and updates. RCU's design is ...
Effective stateless model checking for C/C++ concurrency
Proceedings of the ACM on Programming Languages (PACMPL), Volume 2, Issue POPLArticle No.: 17, Pages 1–32https://doi.org/10.1145/3158105We present a stateless model checking algorithm for verifying concurrent programs running under RC11, a repaired version of the C/C++11 memory model without dependency cycles. Unlike most previous approaches, which enumerate thread interleavings up to ...
- research-articleJuly 2017
Stateless model checking of the Linux kernel's hierarchical read-copy-update (tree RCU)
SPIN 2017: Proceedings of the 24th ACM SIGSOFT International SPIN Symposium on Model Checking of SoftwareJuly 2017, Pages 172–181https://doi.org/10.1145/3092282.3092287Read-Copy-Update (RCU) is a synchronization mechanism used heavily in key components of the Linux kernel, such as the virtual filesystem (VFS), to achieve scalability by exploiting RCU's ability to allow concurrent reads and updates. RCU's design is ...