JDK-8254739 started storing the exact locations of objects that failed evacuation in lists; this is useful and faster than just iterating over the whole region object-by-object trying to find those that failed evacuation.
After a certain amount of failed objects in a region, this mechanism is more costly (in time and space) than just giving up and falling back to something else (like iterating over all objects).
This situation is supposed to be more frequent with pinned regions, so more urgent to investigate then.
Investigate implementing this or an alternative algorithm to do that.