Microsoft Corporation
DATA RACE DETECTION WITH PER-THREAD MEMORY PROTECTION

Last updated:

Abstract:

Data race detection in multi-threaded programs can be achieved by leveraging per-thread memory protection technology in conjunction with a custom dynamic memory allocator to protect shared memory objects with unique memory protection keys, allowing data races to be turned into inter-thread memory access violations. In various embodiments, threads acquire or release the keys used for accessing protected memory objects at the entry and exit points of critical sections within the program. An attempt by a thread to access a protected memory object within a critical section without the associated key triggers a protection fault, which may be indicative of a data race.

Status:
Application
Type:

Utility

Filling date:

24 Jan 2020

Issue date:

29 Jul 2021