This is a spin-off from JDK-6938732 to clean up when promoted object tracking should be enabled for the parallel workers (during the main ParNew parallel phase), when it should be disabled (during reference processing), and when the the promoted object lists should be torn down (each parallel worker should tear down its list after the termination protocol).
I'm copying some text from JDK-6938732 for some background on this:
Each parallel worker also has a PromotionInfo object with which it tracks all the objects it promotes during a GC. This seems a bit counter-intuitive given that the promotion list is not needed for a parallel worker to keep track of which objects it's copied (it has its taskqueue for that). There is, however, a subtle reason for this. When promoted objects are added to a PromotionInfo list they are also marked specially so that they can be differentiated from objects that were not promoted during the GC. This allows the card table scanning code to skip objects that were just promoted and happened to end up on a dirty card. So, the PromotionInfo lists are populated during the main ParNew parallel phase. But, how are they torn down given that they are not iterated over? Serially, after the main ParNew parallel phase is done (it has to be, they can only be torn down after all card table scanning is done) and the lists tearing down time is attributed to... *drum roll* reference processing!