United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-8026293 : Schedule part of G1 pre-barrier late

Details
Type:
Enhancement
Submit Date:
2013-10-10
Status:
Resolved
Updated Date:
2014-01-22
Project Name:
JDK
Resolved Date:
2013-10-16
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs25
Fixed Versions:
hs25,7u60 (b55)

Related Reports
Backport:
Backport:

Sub Tasks

Description
A large part of the G1 write barrier is only used during marking, hence the code it not commonly executed.

To make the active code segments smaller and better fit the cache these unused segments should be schedule outside of the common path.

Setting the the first branch of the pre-barrier check to be unlikely will make the compiler treat the barrier code as cold and hence schedule it outside of the hot path.

This helps to improve the performance of the generated when no concurrent marking is running.
                                    

Comments
The C2 graph involving AllocateNode and InitializeNode was introduced in JDK-6337834 and tweaked in JDK-6506252 to remove card marks and other redundant operations in a peephole neighborhood of an allocation.  It is likely that the complex G1 barriers are obscuring this peephole analysis.  We should investigate repairing that analysis.
                                     
2014-01-22
URL:   http://hg.openjdk.java.net/hsx/hsx25/hotspot/rev/f91a9a696e5e
User:  amurillo
Date:  2013-10-19 08:01:03 +0000

                                     
2013-10-19
URL:   http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/f91a9a696e5e
User:  kvn
Date:  2013-10-16 03:19:47 +0000

                                     
2013-10-16



Hardware and Software, Engineered to Work Together