hazptr: Move reclamation outside tagged list critical section
Summary: Move the reclamation of tagged objects outside the critical section on the tagged list lock (in asynchronous reclamation of the domain tagged list). Tagged objects are subject to both synchronous and asynchronous reclamation. Each tagged object belongs to a cohort. Currently, asynchronous reclamation of the domain list of tagged objects reclaims tagged objects while holding the lock on the list, so that synchronous reclamation of a cohort's objects does not miss such objects. This diff adds a singly linked list of objects that are safe to reclaim to the cohort structure. Asynchronous reclamation pushes reclaimable tagged objects into the safe lists in their respective cohorts, instead of reclaiming such objects while holding the lock on the list of tagged objects. By pushing objects to their respective cohorts, synchronous reclamation can find not-yet-reclaimed objects in the cohort's own safe list. Reviewed By: davidtgoldblatt Differential Revision: D23973107 fbshipit-source-id: 2a9758cc8b03bb98a45b5579bab2964d9ae3d60c
Showing
Please register or sign in to comment