RFR: 8261496: Shenandoah: reconsider pacing updates memory ordering

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

RFR: 8261496: Shenandoah: reconsider pacing updates memory ordering

Aleksey Shipilev-5
Shenandoah pacer uses atomic operations to update budget, progress, allocations seen. Hotspot's default for atomic operations is memory_order_conservative, which emits two-way memory fences around the CASes at least on AArch64 and PPC64.

This is excessive for pacing, as we do not piggyback memory effects on it. All pacing updates can use "relaxed".

Additional testing:
 - [x] Linux x86_64 hotspot_gc_shenandoah
 - [x] Linux AArch64 hotspot_gc_shenandoah
 - [x] Linux AArch64 tier1 with Shenandoah

-------------

Commit messages:
 - 8261496: Shenandoah: reconsider pacing updates memory ordering

Changes: https://git.openjdk.java.net/jdk/pull/2501/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2501&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8261496
  Stats: 7 lines in 3 files changed: 0 ins; 0 del; 7 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2501.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2501/head:pull/2501

PR: https://git.openjdk.java.net/jdk/pull/2501
Reply | Threaded
Open this post in threaded view
|

Re: RFR: 8261496: Shenandoah: reconsider pacing updates memory ordering

Zhengyu Gu-3
On Wed, 10 Feb 2021 10:13:47 GMT, Aleksey Shipilev <[hidden email]> wrote:

> Shenandoah pacer uses atomic operations to update budget, progress, allocations seen. Hotspot's default for atomic operations is memory_order_conservative, which emits two-way memory fences around the CASes at least on AArch64 and PPC64.
>
> This is excessive for pacing, as we do not piggyback memory effects on it. All pacing updates can use "relaxed".
>
> Additional testing:
>  - [x] Linux x86_64 hotspot_gc_shenandoah
>  - [x] Linux AArch64 hotspot_gc_shenandoah
>  - [x] Linux AArch64 tier1 with Shenandoah

Looks good to me

-------------

Marked as reviewed by zgu (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/2501
Reply | Threaded
Open this post in threaded view
|

Integrated: 8261496: Shenandoah: reconsider pacing updates memory ordering

Aleksey Shipilev-5
In reply to this post by Aleksey Shipilev-5
On Wed, 10 Feb 2021 10:13:47 GMT, Aleksey Shipilev <[hidden email]> wrote:

> Shenandoah pacer uses atomic operations to update budget, progress, allocations seen. Hotspot's default for atomic operations is memory_order_conservative, which emits two-way memory fences around the CASes at least on AArch64 and PPC64.
>
> This is excessive for pacing, as we do not piggyback memory effects on it. All pacing updates can use "relaxed".
>
> Additional testing:
>  - [x] Linux x86_64 hotspot_gc_shenandoah
>  - [x] Linux AArch64 hotspot_gc_shenandoah
>  - [x] Linux AArch64 tier1 with Shenandoah

This pull request has now been integrated.

Changeset: 4642730b
Author:    Aleksey Shipilev <[hidden email]>
URL:       https://git.openjdk.java.net/jdk/commit/4642730b
Stats:     7 lines in 3 files changed: 0 ins; 0 del; 7 mod

8261496: Shenandoah: reconsider pacing updates memory ordering

Reviewed-by: zgu

-------------

PR: https://git.openjdk.java.net/jdk/pull/2501