The concurrent memory reclamation problem is that of devising techniques to allow a deallocating thread to verify that no other concurrent threads, in particular ones executing read-only traversals, have a reference to the block being deallocated. To date, there is no satisfactory solution to this problem: existing tracking methods like hazard pointers, reference counters, or epoch-based RCU, are either prohibitively expensive or require significant programming expertise, to the extent that using them is worthy of a conference paper. None of the existing techniques are automatic or even semi-automated.
Our research project takes a new approach to concurrent memory reclamation: instead of manually tracking access to memory locations as done in techniques like hazard pointers, or restricting reference accesses to specific code boundaries as in RCU, we plan to use the operating system and modern hardware's transactional memory tracking mechanisms to devise ways to automatically detect which memory locations are being accessed. This will allow to design and implement a new class of automated concurrent memory reclamation frameworks, making them relatively easy to use and allowing them to scale, so that the design of such structures can become more accessible to the non-expert programmer.
Alex Matveev is a Postdoctoral Associate at MIT Computer Science and Artificial Intelligence Laboratory, working as part of the Multicore Algorithmics group. His main interests are practical and efficient synchronization techniques for multi-core systems. In particular, he works on hardware and software transactional memory, concurrent memory reclamation, and operating system support that can provide new multi-core programming paradigms.