RFR(s): 8205582: PPC64: RTM: Fix counter for aborts on nested transactions

Doerr, Martin martin.doerr at sap.com
Mon Jun 25 16:31:32 UTC 2018


Hi Gustavo,

thanks for addressing this issue.

I think it would be better to ignore bit 63 in the macroAssembler code and use the definition from the spec in assembler_ppc.hpp.
Somebody may want to use the definition for other purposes.

I wonder if Assembler::tm_trans_cf | Assembler::tm_non_trans_cf would be a better match for x86's description for tm_failure_bit[2]. It's also a little unfortunate to print the same bit twice as tm_failure_bit[4].

Best regards,
Martin


-----Original Message-----
From: Gustavo Romero [mailto:gromero at linux.vnet.ibm.com] 
Sent: Montag, 25. Juni 2018 10:19
To: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>; Doerr, Martin <martin.doerr at sap.com>; hotspot-compiler-dev at openjdk.java.net
Cc: ppc-aix-port-dev at openjdk.java.net
Subject: RFR(s): 8205582: PPC64: RTM: Fix counter for aborts on nested transactions

Hi,

Could the following change be reviewed please?

bug   : https://bugs.openjdk.java.net/browse/JDK-8205582
webrev: http://cr.openjdk.java.net/~gromero/8205582/v1/

It fixes the RTM counter for nested aborts (rtm lock aborts type 5) by
extracting and checking bits in the Transactional Level field of TEXASR
register.

It also fixes the memory conflict counter (rtm lock aborts type 2). Power TM
status register supports two bits to inform two different types of memory
conflict between threads: non-transactional and transactional. According to how
the jtreg RTM tests are designed the memory conflict counter counts
non-transactional conflicts: on TestPrintPreciseRTMLockingStatistics a RTM lock
is held on a static variable while another thread without any synchronization
(non-trasactional) tries to modify the same variable. Hence that small
adjustment satisfies the TestPrintPreciseRTMLockingStatistics making it pass on
Power. The memory conflict counter is not used in any other place besides by the
RTM precise statistics (no decision is made by the JVM based on that amount).

This change partially fixes some failures in
compiler/rtm/print/TestPrintPreciseRTMLockingStatistics.java regarding the
nested and memory conflict abort counters. The remaining issue will be fixed by
aborting on calling JNI (next RFR).


Thank you and best regards,
Gustavo



More information about the ppc-aix-port-dev mailing list