60 Commits

Author SHA1 Message Date
Claes Redestad
28bb3a05d9 8183573: Refactor CodeHeap and AOTCodeHeap to devirtualize hot methods
Reviewed-by: kvn, dlong
2017-07-10 23:28:25 +02:00
Vladimir Kozlov
62b03921aa Merge 2017-07-05 18:14:48 -07:00
Dean Long
a1ea428918 8181757: NonNMethod heap in segmented CodeCache is not scanned in some cases
8171365: nsk/jvmti/scenarios/events/EM04/em04t001: many errors for missed events

Reviewed-by: thartmann, kvn
2017-06-13 10:27:42 -07:00
Zoltan Majo
ecee7fc84b 8173151: Code heap corruption due to incorrect inclusion test
Change inclusion test to use CodeBlob::code_begin() for AOT methods and start of CodeBlob otherwise. Added regression test.

Reviewed-by: thartmann, dlong, kvn
2017-02-10 08:16:49 +01:00
Bob Vandette
6009cf0793 8168503: JEP 297: Unified arm32/arm64 Port
Reviewed-by: kvn, enevill, ihse, dholmes, erikj, coleenp, cjplummer
2016-12-19 12:39:01 -05:00
Bharadwaj Yadavalli
2841c5eb2b 8171008: Integrate AOT compiler into JDK
Co-authored-by: Christian Thalinger <cthalinger@twitter.com>
Co-authored-by: Dean Long <dean.long@oracle.com>
Co-authored-by: Dmitrij Pochepko <dmitrij.pochepko@oracle.com>
Co-authored-by: Dmitry Chuyko <dmitry.chuyko@oracle.com>
Co-authored-by: Doug Simon <doug.simon@oracle.com>
Co-authored-by: Eric Caspole <eric.caspole@oracle.com>
Co-authored-by: Igor Ignatyev <igor.ignatyev@oracle.com>
Co-authored-by: Igor Veresov <igor.veresov@oracle.com>
Co-authored-by: John Rose <john.r.rose@oracle.com>
Co-authored-by: Morris Meyer <morris.meyer@oracle.com>
Co-authored-by: Niclas Adlertz <niclas.adlertz@oracle.com>
Co-authored-by: Rickard Backman <rickard.backman@oracle.com>
Reviewed-by: erikj, mchung, psandoz, coleenp, iklam, stefank, simonis
2016-12-11 19:07:04 -08:00
Coleen Phillimore
4b9562288f 8155672: Remove instanceKlassHandles and KlassHandles
Use unhandled pointers for Klass and InstanceKlass, remove handles with no implementation.

Reviewed-by: dholmes, lfoltan, vlivanov, sspitsyn
2017-03-15 10:25:37 -04:00
Tobias Hartmann
ebb0356d35 8064892: Non-methods code cache overflow is not handled correctly
Should keep track of requested code blob type for error reporting. Added additional debug output.

Reviewed-by: kvn, dpochepk
2016-08-19 08:34:30 +02:00
Rickard Bäckman
b853eb7f5c 8151956: Support non-continuous CodeBlobs in HotSpot
Reviewed-by: iveresov, thartmann, simonis
2016-04-26 10:28:51 +02:00
Jamsheed Mohammed C M
b26b78a4d4 8067247: Crash: assert(method_holder->data() == 0 ...) failed: a) MT-unsafe modification of inline cache
Made invoker LambdaForm instance & its compiled form lifetime tightly coupled.

Reviewed-by: vlivanov
2016-04-05 01:46:40 -07:00
Jesper Wilhelmsson
7b7aad5481 Merge 2016-03-16 14:31:33 +01:00
Carsten Varming
f913f3be69 8150013: ParNew: Prune nmethods scavengable list
Speed up ParNew collections by pruning the list of scavengable nmethods.

Reviewed-by: jmasa, tonyp, twisti
2016-03-07 14:41:31 -05:00
Vladimir Ivanov
4532f54300 7177745: JSR292: Many Callsite relinkages cause target method to always run in interpreter mode
Reviewed-by: jrose, kvn
2016-02-19 20:40:20 +03:00
Christian Thalinger
bf5db72254 8134994: use separate VMStructs databases for SA and JVMCI
Reviewed-by: kbarrett
2015-12-14 17:02:02 -10:00
Tobias Hartmann
8ac86c17f8 8061436: Processing of options related to segmented code cache should be enhanced
Allow user to set code heap sizes individually and enhance checking of code cache flags.

Reviewed-by: kvn, roland
2015-11-16 15:35:43 +01:00
Tobias Hartmann
5d86db4b66 8067378: Add segmented code heaps info into jfr events: vm/code_cache/stats and vm/code_cache/config
Added code heap specific information to code cache JFR events.

Reviewed-by: twisti, mgronlun
2015-11-09 11:35:44 +01:00
Tobias Hartmann
72e8f28d56 8075805: Crash while trying to release CompiledICHolder
Removed nmethod transition to zombie outside of sweeper. Added cleaning of ICs of unloaded nmethods.

Reviewed-by: kvn, iveresov
2015-08-25 07:49:55 +02:00
Bertrand Delsart
5aec2dc9fc 8087333: Optionally Pre-Generate the HotSpot Template Interpreter
Optional support for pregenerated template interpreter

Reviewed-by: coleenp, dholmes, kvn
2015-07-01 10:53:26 +02:00
Stefan Johansson
d9e465adaf 8077279: assert(ic->is_clean()) failed: IC should be clean
Reviewed-by: rbackman, thartmann
2015-06-15 10:24:38 +02:00
Vladimir Ivanov
e5a92a9fb9 8079205: CallSite dependency tracking is broken after sun.misc.Cleaner became automatically cleared
Reviewed-by: roland, psandoz, plevart, kbarrett, jrose
2015-05-15 19:23:11 +03:00
Tobias Hartmann
58338525b4 8072774: bigapps/Weblogic+medrec/nowarnings fails due to CodeHeap 'profiled nmethods' exhaustion
Store profiled code in the non-profiled code heap (and vice versa) if the code cache is really full.

Reviewed-by: kvn, iveresov
2015-02-23 07:55:37 +01:00
Tobias Hartmann
ad9c86bc97 8064940: JMH javac performance regressions on solaris-sparcv9 in 9-b34
Aligning code heap sizes to large page size if supported.

Reviewed-by: kvn, anoll
2015-01-28 07:55:27 +01:00
Coleen Phillimore
27a1ed85b6 8067836: The Universe::flush_foo methods belong in CodeCache
Move this code to CodeCache.

Reviewed-by: kbarrett, kvn
2015-01-06 19:30:28 -05:00
Igor Ignatyev
bdac822811 8059624: Test task: WhiteBox API for testing segmented codecache feature
Reviewed-by: kvn, thartmann
2014-11-10 19:04:38 +03:00
Albert Noll
6520320d1a 8046809: vm/mlvm/meth/stress/compiler/deoptimize CodeCache is full
Use separate sweeper thread; enables more aggressive sweeping.

Reviewed-by: kvn, jrose
2014-10-24 14:25:46 +02:00
Tobias Hartmann
bdd3c3df3a 8060196: 'CodeHeap is full' warning suggests to increase wrong code heap size
Fixed 'CodeHeap is full' warning to output the right CodeHeapSize flag.

Reviewed-by: kvn, anoll
2014-10-17 08:56:07 +02:00
Zoltan Majo
72eb3f0643 8059390: code cache fills up for bigapps/Weblogic+medrec/nowarnings
Retrieve code heap in CodeCache::allocate(), ::report_codemem_full(), and ::unallocated_capacity()  also if segmented code cache is disabled.

Reviewed-by: vlivanov, thartmann
2014-10-01 10:01:46 +02:00
Tobias Hartmann
ea755702aa 8059468: Fix PrintCodeCache output changed by JDK-8059137
Change output of PrintCodeCache to print "CodeCache" instead of "Code Cache" and change name of non-method code heap to non-nmethod code heap.

Reviewed-by: vlivanov, anoll
2014-09-30 15:44:43 +02:00
Tobias Hartmann
cd01de591a 8015774: Add support for multiple code heaps
Support for segmentation of the code cache. Separate code heaps are created and used to store code of different types.

Reviewed-by: kvn, iveresov, roland, anoll, egahlin, sla
2014-09-17 08:00:07 +02:00
Nils Eliasson
6062c2db15 8054889: Compiler team's implementation task
Adding three new diagnostic commands for compiler

Reviewed-by: anoll, kvn, drchase
2014-09-10 13:27:33 +02:00
Stefan Karlsson
1b001a2afd 8049421: G1 Class Unloading after completing a concurrent mark cycle
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Reviewed-by: tschatzl, ehelin, brutisso, coleenp, roland, iveresov
2014-07-07 10:12:40 +02:00
Stefan Karlsson
ef1e9b3c80 8049420: Backout 8048248 to correct attribution
Reviewed-by: ehelin, brutisso
2014-07-07 12:37:11 +02:00
Stefan Karlsson
8c3aced316 8048248: G1 Class Unloading after completing a concurrent mark cycle
Reviewed-by: tschatzl, ehelin, brutisso, coleenp, roland, iveresov
2014-07-07 10:12:40 +02:00
Albert Noll
e8bc971d19 8029799: vm/mlvm/anonloader/stress/oome prints warning: CodeHeap: # of free blocks > 10000
Double CodeCacheSegmentSize from 64 byte to 128 bytes if tiered compilation is enabled

Reviewed-by: kvn, twisti
2014-03-07 07:42:40 +01:00
Albert Noll
0dee555ead 8020151: PSR:PERF Large performance regressions when code cache is filled
Code cache sweeping based on method hotness; removed speculatively disconnect

Reviewed-by: kvn, iveresov
2013-09-27 10:50:55 +02:00
Staffan Larsen
718f3252f6 8005849: JEP 167: Event-Based JVM Tracing
Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com>
Co-authored-by: Bengt Rutisson <bengt.rutisson@oracle.com>
Co-authored-by: Calvin Cheung <calvin.cheung@oracle.com>
Co-authored-by: Erik Gahlin <erik.gahlin@oracle.com>
Co-authored-by: Erik Helin <erik.helin@oracle.com>
Co-authored-by: Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>
Co-authored-by: Keith McGuigan <keith.mcguigan@oracle.com>
Co-authored-by: Mattias Tobiasson <mattias.tobiasson@oracle.com>
Co-authored-by: Markus Gronlund <markus.gronlund@oracle.com>
Co-authored-by: Mikael Auno <mikael.auno@oracle.com>
Co-authored-by: Nils Eliasson <nils.eliasson@oracle.com>
Co-authored-by: Nils Loodin <nils.loodin@oracle.com>
Co-authored-by: Rickard Backman <rickard.backman@oracle.com>
Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Yekaterina Kantserova <yekaterina.kantserova@oracle.com>
Reviewed-by: acorn, coleenp, sla
2013-06-10 11:30:51 +02:00
Albert Noll
114b578228 8012371: Adjust Tiered compile threshold according to available space in code cache
Added command line parameter to define a threshold at which C1 compilation threshold for  is increased.

Reviewed-by: kvn, iveresov
2013-05-16 15:46:49 +02:00
Nils Eliasson
dedfcd5aa4 8012547: Code cache flushing can get stuck reclaming of memory
Keep sweeping regardless of if we are flushing

Reviewed-by: kvn, twisti
2013-04-29 13:20:19 +02:00
Nils Eliasson
92ef5fe748 8006952: Slow VM due to excessive code cache freelist iteration
Remove continous free block requirement

Reviewed-by: kvn
2013-04-11 13:57:44 +02:00
Morris Meyer
981e9c35c9 8009026: [parfait] Null pointer deference in hotspot/src/share/vm/code/nmethod.cpp
Add guarantee() to nmethod constructor and checks to ensure CodeCache has space before allocation

Reviewed-by: kvn
2013-03-23 06:22:07 -07:00
Alexander Harlap
95cbed6639 8005204: Code Cache Reduction: command line options implementation
Adding more detailed output on CodeCache usage

Reviewed-by: kvn, vladidan
2013-01-14 13:52:08 -05:00
Bengt Rutisson
fcae0353d2 7200470: KeepAliveClosure not needed in CodeCache::do_unloading
Removed the unused keep_alive parameter

Reviewed-by: stefank, dholmes, kamg, coleenp
2012-09-25 14:58:12 +02:00
Jon Masamitsu
5c58d27aac 6964458: Reimplement class meta-data storage to use native memory
Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes

Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
2012-09-01 13:25:18 -04:00
Zhengyu Gu
a39b17624a 6995781: Native Memory Tracking (Phase 1)
7151532: DCmd for hotspot native memory tracking

Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd

Reviewed-by: acorn, coleenp, fparain
2012-06-28 17:03:16 -04:00
John R Rose
41745904a3 Merge 2011-04-09 21:16:12 -07:00
Tom Rodriguez
4f41ea7fff 7033779: CodeCache::largest_free_block may need to hold the CodeCache lock
Reviewed-by: kvn
2011-04-05 19:16:52 -07:00
Erik Trimble
c9e484d473 7010070: Update all 2010 Oracle-changed OpenJDK files to have the proper copyright dates - second pass
Update the copyright to be 2010 on all changed files in OpenJDK

Reviewed-by: ohair
2011-04-05 14:12:31 -07:00
Tom Rodriguez
f5ef48f3b9 7028374: race in fix_oop_relocations for scavengeable nmethods
Reviewed-by: kvn
2011-03-18 15:52:42 -07:00
Vladimir Kozlov
fd6487f201 7025742: Can not use CodeCache::unallocated_capacity() with fragmented CodeCache
Use largest_free_block() instead of unallocated_capacity().

Reviewed-by: iveresov, never, ysr
2011-03-09 09:15:16 -08:00
Vladimir Kozlov
28050800c0 7008325: CodeCache exhausted on sparc starting from hs20b04
Remove clear_scratch_buffer_blob and let init_scratch_buffer_blob free and allocate a new blob if required.

Reviewed-by: twisti
2010-12-29 10:41:43 -08:00