Currently, all three G1 memory pools return "undefined" (i.e., -1) for their max size. This decision was made because they don't have fixed boundaries so potentially any pool can grow to the entire heap (almost at least).
Jon Masamitsu made a good suggestion that maybe the old gen pool should return a max size that's the same as the entire heap max size, whereas leave the eden and survivor pools to return undefined. We should do this, as long as it doesn't break any assumptions in testing and/or the rest of the memory pool framework.
Similarly, we should consider setting the old minimum capacity to the heap minimum capacity. This is only used by jstat and currently we set the minimum capacity of all the spaces to 0.
Actually, setting the old gen min capacity to the heap min capacity doesn't really make sense. If the heap is at minimum capacity, the old gen capacity is likely to be under that, since we usually need space for the young gen too. So, the heap min capacity doesn't make sense as a lower bound for the old gen min capacity.
We'll only implement the change for the old memory pool max size.