RFR: 8334223: Make Arena MEMFLAGs immutable
Thomas Stuefe
stuefe at openjdk.org
Sat Jun 15 05:41:35 UTC 2024
Arenas carry NMT flags.
An arena should never change that flag. But it does: Arenas (as ResourceAreas), used by CompilerThread, are accounted toward mtCompiler. But since the RA is already created in the parent class constructor (as mtThread), we then have to awkwardly change the flag of an already existing RA in the CompilerThread constructor.
As a prerequisite for future NMT work I would like Arena MEMFLAGS to be immutable.
The patch does that:
- we hand in MEMFLAGS to the Thread constructor now (defaults to mtThread)
- CompilerThread hands in mtCompiler, all other threads rely on the default
- on creation, both ResourceArea and HandleArea are now accounted toward the flag handed in
- that allows us to make Arena::flags const, and to remove ResourceArea::bias_to which changed the flag in-flight for the arena
- it also allows us to make Arena::flags private
Other, unrelated cleanups:
- Made Arena::_size_in_bytes and Arena::_tag private
- Merged both Arena constructors into one by specifying a default value of `Chunk::init_size` for `init_size` argument. That makes it equivalent to the old `Arena(flag, tag)` constructor
- removed `JavaThread::JavaThread(bool)`. That constructor was used when creating threads that are getting attached. There was only a single use for that constructor, and I replaced it with functionally equivalent code.
Tests:
I manually verified that the NMT numbers printed don't change.
-------------
Commit messages:
- start
Changes: https://git.openjdk.org/jdk/pull/19693/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19693&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8334223
Stats: 76 lines in 12 files changed: 20 ins; 42 del; 14 mod
Patch: https://git.openjdk.org/jdk/pull/19693.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19693/head:pull/19693
PR: https://git.openjdk.org/jdk/pull/19693
More information about the hotspot-dev
mailing list