πA generational GC can skip scanning an old generation if it is known to not contain references to newer generations
When collecting newer generation, the GC can skip scanning some of older generations if they are known not to contain references to newer generations.
This knowledge can be gained either by instrumenting the mutator code to invoke write barriers, or using page protection.
See also
If objects are immutable, older memory can never point to the newly-allocated memoryβan ultimate variant whereas the property is guaranteed without runtime checks.