  Mutual exclusion (ME) is a commonly used technique to handle conflicts in
concurrent systems. With recent advancements in non-volatile memory technology,
there is an increased focus on the problem of recoverable mutual exclusion
(RME), a special case of ME where processes can fail and recover. However, in
order to ensure that the problem of RME is also of practical interest, and not
just a theoretical one, memory reclamation poses as a major obstacle in several
RME algorithms. Often RME algorithms need to allocate memory dynamically, which
increases the memory footprint of the algorithm over time. These algorithms are
typically not equipped with suitable garbage collection due to concurrency and
failures.
  In this work, we present the first "general" recoverable algorithm for memory
reclamation in the context of recoverable mutual exclusion. Our algorithm can
be plugged into any RME algorithm very easily and preserves all correctness
property and most desirable properties of the algorithm. The space overhead of
our algorithm is $\mathcal{O}(n^2 * sizeof(node)\ )$, where $n$ is the total
number of processes in the system. In terms of remote memory references (RMRs),
our algorithm is RMR-optimal, i.e, it has a constant RMR overhead per passage.
Our RMR and space complexities are applicable to both $CC$ and $DSM$ memory
models.
