-
Notifications
You must be signed in to change notification settings - Fork 392
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Deprecate PrefetchInsertion optimization
The optimization has O(n^2) complexity and is currently disabled for forward array traversals, and recently we've had to disable it under all array traversals for concurrent scavenge. As read barriers become more prominent, the introduction of the dataAddr pointer in the header will force us to further limit this optimization. This optimization was originally introduced in 2010 for z196 z/Architecture processor to accelerate SPEC workloads. It showed minimal improvement (1.5%) according to historical data dug up prior to open sourcing the project. The hardware is hardly used today since it is so old. In recent iterations of the hardware, software prefetching has been discouraged due to advancements in hardware prefetching. Similar observations were seen when we removed prefetching from our zero memory routines. Moreover, the phantom words past the end of the GC heap were removed several years ago, forcing us to disable this optimization for forward array traversals. As mentioned previously we have been encountering bugs in this optimization recently due to changes in the JVM and the fact that this optimization introduces loads on the heap which previously did not exist. In the PR we detail performance numbers for several workloads where we believed this optimization may have provided a benefit. Across all platforms measured we no longer see a benefit (and sometimes a degradation) from running this optimization. Here we deprecate the optimization as we still have access to the original source code in the history if we ever need to resurrect this effort. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
- Loading branch information
Showing
11 changed files
with
7 additions
and
630 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.