To better shape fixing JDK-8245511, this was suggested in its comments:
"- one other improvement could be to put the old gen allocation tracking into its own class (e.g. G1OldGenAllocationTracker; which G1Policy has an instance of) to not add too much detail to the IHOP code itself. In G1IHOPControl::update_allocation_info() then pass the expected allocation rate as experienced by/relevant to the IHOP control as it is in now its respective components. "
In general, the enhancement proposal is to track old gen allocations in a separate class so that this concern can be worked upon in a more clearly/cleanly delineated source code context. After implementing this refactoring cleanly, without any change in behavior, other improvements can follow.