RFR: Incorrect conditional matrix cleanup in SHMatrix::clean_batched

Zhengyu Gu zgu at redhat.com
Fri May 12 15:01:07 UTC 2017


Good to me.

-Zhengyu

On 05/12/2017 10:43 AM, Aleksey Shipilev wrote:
> Hi,
>
> Zhengyu found this embarrassing bug introduced by me:
>
> diff -r e0ac01d9dae2 src/share/vm/gc/shenandoah/shenandoahConnectionMatrix.cpp
> --- a/src/share/vm/gc/shenandoah/shenandoahConnectionMatrix.cpp	Fri May 12
> 13:37:36 2017 +0200
> +++ b/src/share/vm/gc/shenandoah/shenandoahConnectionMatrix.cpp	Fri May 12
> 16:30:50 2017 +0200
> @@ -117,7 +117,7 @@
>          size_t start = r * stride;
>          for (size_t i = 0; i < count; i++) {
>            size_t t = start + idxs[i];L
> -          if (matrix[t] == 0) {
> +          if (matrix[t] != 0) {
>              matrix[t] = 0;
>            }
>          }
>
>
> This should not affect correctness though, because we "just" keep matrix way
> more conservative than required.
>
> Testing: hotspot_gc_shenandoah
>
> Thanks,
> -Aleksey
>


More information about the shenandoah-dev mailing list