RFR: JDK-8231583: Shenandoah fails with finagle-http
rkennke at redhat.com
Mon Sep 30 13:12:19 UTC 2019
We're seeing failure with the finagle-http workload in renaissance
The problem is caused by ShBSA::resolve_forward_pointer_not_null()
trying to borrow a register. In order to do so, it pushes rscratch1, and
later pops it again. This clashes when dst also happens to be rscratch1,
in this case the pop would restore the original value.
We need the register allocator to allocate an extra tmp reg for this. C1
should be good because rscratch1 is never used by register allocation there.
The whole cmpxchg-oop sequence can be simplified a lot. Maybe we can
reduce tmp register usage there?
Testing: the failing test now passes. hotspot_gc_shenandoah is good too.
More information about the hotspot-gc-dev