The so-called "abortable preclean phase" was implemented as a way to
"continue lazy precleaning" of the CMS generation while waiting to
schedule the remark roughly midway between scavenges in order to reduce
the mutator impact of potential back-to-back stop-world pauses that
might otherwise occur.
Recent evidence however suggests that abortable precleaning is not
meeting these goals much of the time. To wit, in some cases abortable
preclean makes matters worse by extending the length of the CMS cycle
by a large amount. This has several deleterious effects, besides the
obvious one of increase floating garbage and footprint on account of
the longer occasional cycle: the large resulting volatility in CMS
cycle lengths can defeat ergonomics by requiring artificially large
padding factors, or of causing inefficient operation on account of
the volatility in the sensor data.
The heuristic needs to be revisited to reduce these bad effects.