g1: dealing with high rates of inter-region pointer writes

Y. S. Ramakrishna y.s.ramakrishna at oracle.com
Wed Dec 29 18:23:20 UTC 2010

Hi Peter, thanks for the details (not all of which I admit I fdully grokked,
but that can wait for later). [Perhaps you have a test case that you are able to
share so we can make these observations locally and see if we can help
address the performance anomaly you have unearthed?)

On 12/29/10 03:49, Peter Schuller wrote:
> I would not expect objects remaining popular forever, but I for some
> reason even when I artificially cause all data to be dropped followed
> by generating enough garbage for old-gen to fill slowly and eventually
> trigger a concurrent mark, I am not seeing the amount of region
> eviction (by partial gc) that I would expect. I don't (currently) have
> any live set / region overflow data to correlate with this case
> however.

We'll be adding that information and perhaps that will help clarify some
of these. I have an RFE out that will be examined by our G1 engineers

Now on to some of your questions:-
> Or put another way: It seems expected that some workloads will trigger
> an overflow in fine grained rs tracking. It *seems* to me that this is


> then also expected to have the effect I am seeing (regions being
> artificially too expensive to collect, leading to them not being
> collected). My main question is whether there is some mechanism in

I do not see that conclusion following obviously from the first.
It is true that in a linear regression model for evacuation cost,
the coefficient for coarser regions will be higher. It will also,
I am guessing, be more "rough" because of possible variability in the
number of objects that actually contain pointers into the region that
is being evacuated. So depending on the regression technique being used
to estimate these coefficients, I believe it is plausible that the costs
for evacaution may be sometimes overestinated (but equally often probably
underestimated as well).

> place that I'm not seeing, that is supposed to mitigate or work around
> this problem?

I believe the regression model depends on assumptions of uniformity or an
averaging effect in the large. That assumption breaks down as region sizes
become larger and pause-time budget becomes small. I do not know whether
the model makes allowances as we scale along those dimensions, but I am
guessing not.

As I said earlier abive, it might work out to be most efficient if you
were somehow able to share a test case with us. I'll contact you off-line
to see if that is possible, and if so open a performance bug for this issue,
which will be evaluated once the G1 engineers are back from vacation next week.

-- ramki


More information about the hotspot-gc-dev mailing list