RFC [10]: Pick up jdk-updates/jdk10u to sh/jdk10

Roman Kennke rkennke at redhat.com
Wed Mar 14 09:56:52 UTC 2018


Ok

> There are two HS changes we want:
> 
> $ hg in http://hg.openjdk.java.net/jdk-updates/jdk10u -p
> comparing with http://hg.openjdk.java.net/jdk-updates/jdk10u
> searching for changes
> changeset:   48725:663f20fc5109
> tag:         jdk-10+44
> parent:      48667:f9884e190f2b
> user:        tschatzl
> date:        Thu Feb 15 00:20:22 2018 +0100
> summary:     8197968: [Backout] JDK-8196883 G1RemSet::refine_card_concurrently doesn't need to check
> for cards in collection set
> 
> diff -r f9884e190f2b -r 663f20fc5109 src/hotspot/share/gc/g1/g1RemSet.cpp
> --- a/src/hotspot/share/gc/g1/g1RemSet.cpp	Fri Feb 09 12:53:08 2018 +0100
> +++ b/src/hotspot/share/gc/g1/g1RemSet.cpp	Thu Feb 15 00:20:22 2018 +0100
> @@ -586,6 +586,20 @@
>      return;
>    }
> 
> +  // While we are processing RSet buffers during the collection, we
> +  // actually don't want to scan any cards on the collection set,
> +  // since we don't want to update remembered sets with entries that
> +  // point into the collection set, given that live objects from the
> +  // collection set are about to move and such entries will be stale
> +  // very soon. This change also deals with a reliability issue which
> +  // involves scanning a card in the collection set and coming across
> +  // an array that was being chunked and looking malformed. Note,
> +  // however, that if evacuation fails, we have to scan any objects
> +  // that were not moved and create any missing entries.
> +  if (r->in_collection_set()) {
> +    return;
> +  }
> +
>    // The result from the hot card cache insert call is either:
>    //   * pointer to the current card
>    //     (implying that the current card is not 'hot'),
> @@ -610,7 +624,8 @@
> 
>        // Check whether the region formerly in the cache should be
>        // ignored, as discussed earlier for the original card.  The
> -      // region could have been freed while in the cache.
> +      // region could have been freed while in the cache.  The cset is
> +      // not relevant here, since we're in concurrent phase.
>        if (!r->is_old_or_humongous()) {
>          return;
>        }
> 
> 
> changeset:   48729:6fa770f9f8ab
> tag:         jdk-10+46
> user:        adinn
> date:        Mon Mar 05 13:18:55 2018 +0000
> summary:     8198950: AArch64: org.openjdk.jcstress.tests.varhandles.DekkerTest fails
> 
> diff -r a487515924b7 -r 6fa770f9f8ab src/hotspot/share/opto/library_call.cpp
> --- a/src/hotspot/share/opto/library_call.cpp	Tue Feb 27 20:48:06 2018 +0000
> +++ b/src/hotspot/share/opto/library_call.cpp	Mon Mar 05 13:18:55 2018 +0000
> @@ -2578,7 +2578,8 @@
>        // the one that guards them: pin the Load node
>        LoadNode::ControlDependency dep = LoadNode::Pinned;
>        Node* ctrl = control();
> -      if (adr_type->isa_instptr()) {
> +      // non volatile loads may be able to float
> +      if (!need_mem_bar && adr_type->isa_instptr()) {
>          assert(adr_type->meet(TypePtr::NULL_PTR) != adr_type->remove_speculative(), "should be not
> null");
>          intptr_t offset = Type::OffsetBot;
>          AddPNode::Ideal_base_and_offset(adr, &_gvn, offset);
> 
> 
> Thanks,
> -Aleksey
> 




More information about the shenandoah-dev mailing list