Request for code review (M) - 8081629: CMS split_block() does not correctly fix up block-offset-table for large blocks

Jon Masamitsu jon.masamitsu at oracle.com
Thu Sep 10 20:50:45 UTC 2015


Ramki,

On 09/10/2015 12:05 AM, Srinivas Ramakrishna wrote:
> Hi Jon --
>
> Sorry again for the delay in looking at the second version of your 
> fix. I had a look at that second fix. I do like the simplificatio
> of the loop that finds the first power block to fix, but I think the 
> rest of the code is, at least to me, clearer in the first fix that you 
> have.
>
> Thus, I am more inclined to support going with the first fix, rather 
> than the second, unless you feel very strongly otherwise, in which
> case I will take a second look at your second fix and perhaps suggest 
> further changes. Let me know if you want to go that route,
> rather than going with the minimal first fix.

I'll use the minimal fix.

>
> Also, it might be nice to backport this fix to JDK 8 if possible, 
> since applications that use CMS and allocate large objects may run into
> this performance problem. (e.g. We have recently had a case where this 
> seems to have contributed to a slight slow down in
> ParNew -- nothing as dramatic as that demonstrated by the test case in 
> the companion ticket, but still sufficiently large and
> long-lasting to be of concern.)

The process is fuzzy in my mind but I don't think
there is going to be another 8 update release (which
is the easy path for a bug fix) so a backport might
require an escalation to get the sustaining organization
involved.

Thanks for the review.

Jon



> thanks!
> -- ramki
>
>
> On Mon, Aug 31, 2015 at 9:25 AM, Srinivas Ramakrishna 
> <ysr1729 at gmail.com <mailto:ysr1729 at gmail.com>> wrote:
>
>     Hi Jon --
>
>     Sorry for the looong delay in getting to this and then of turning
>     around the webrev once I started looking at the code.
>     It's been a while since I was in this code, and the code is quite
>     complicated, so it took a while to swap back
>     the context and understand (the correctness of) the change.
>
>
>
>     On Mon, Jun 22, 2015 at 12:57 PM, Jon Masamitsu
>     <jon.masamitsu at oracle.com <mailto:jon.masamitsu at oracle.com>> wrote:
>
>         This bug is causing large young GC times for ParNew when
>         there are large objects in the heap and the logarithmic strides
>         are being used (badly).
>
>         https://bugs.openjdk.java.net/browse/JDK-8081629
>
>         The change in webrev_min corrects the problem
>         with the minimum code change (least risk).
>
>         http://cr.openjdk.java.net/~jmasa/8081629/webrev_min.02/
>         <http://cr.openjdk.java.net/%7Ejmasa/8081629/webrev_min.02/>
>
>
>
>     The above changes look good to me. Thanks also for confirming that
>     these
>     changes fix the assertion failure seen with
>     +VerifyBlockOffsetArray. It might be
>     worthwhile writing (in the future) a slightly more lightweight
>     VerifyBlockOffsetArray
>     so that it becomes practical to use.
>
>     I haven't had the opportunity to look at and understand the second
>     version of the
>     webrev below yet. But the one above looks good to me. I'll try and
>     get to the
>     version below in the next day or so. Sorry for the ongoing delay.
>
>     thanks!
>     -- ramki (openjdk: ysr)
>
>
>
>         A rewriting of split_block() in included in a second webrev
>
>         http://cr.openjdk.java.net/~jmasa/8081629/webrev.02/
>         <http://cr.openjdk.java.net/%7Ejmasa/8081629/webrev.02/>
>
>         I've willing to go with the minimum change but could also
>         be encouraged to push the rewrite of split_block().
>
>         Vote for the one you like with your code review.
>
>         The diff between webrev_min.02 and webrev.02 is
>         here but I don't find it that useful.
>
>         http://cr.openjdk.java.net/~jmasa/8081629/webrev_delta.02/
>         <http://cr.openjdk.java.net/%7Ejmasa/8081629/webrev_delta.02/>
>
>         Thanks.
>
>         Jon
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20150910/f2bc01eb/attachment.htm>


More information about the hotspot-gc-dev mailing list