> Background to this patch:
> 
> This prototype/patch has been discussed with a few HotSpot devs, and I've 
> gotten feedback that I should send it out for broader discussion/review. It 
> could be a first step to make it easier to talk about our allocation super 
> classes and strategies. This in turn would make it easier to have further 
> discussions around how to make our allocation strategies more flexible. E.g. 
> do we really need to tie down utility classes to a specific allocation 
> strategy? Do we really have to provide MEMFLAGS as compile time flags? Etc.
> 
> PR RFC:
> 
> HotSpot has a few allocation classes that other classes can inherit from to 
> get different dynamic-allocation strategies:
> 
> MetaspaceObj - allocates in the Metaspace
> CHeap - uses malloc
> ResourceObj - ...
> 
> The last class sounds like it provide an allocation strategy to allocate 
> inside a thread's resource area. This is true, but it also provides functions 
> to allow the instances to be allocated in Areanas or even CHeap allocated 
> memory.
> 
> This is IMHO misleading, and often leads to confusion among HotSpot 
> developers.
> 
> I propose that we simplify ResourceObj to only provide an allocation strategy 
> for resource allocations, and move the multi-allocation strategy feature to 
> another class, which isn't named ResourceObj.
> 
> In my proposal and prototype I've used the name AnyObj, as short, simple 
> name. I'm open to changing the name to something else.
> 
> The patch also adds a new class named ArenaObj, which is for objects only 
> allocated in provided arenas.
> 
> The patch also removes the need to provide ResourceObj/AnyObj::C_HEAP to 
> `operator new`. If you pass in a MEMFLAGS argument it now means that you want 
> to allocate on the CHeap.

Stefan Karlsson has updated the pull request incrementally with one additional 
commit since the last revision:

  Fix Shenandoah

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/10745/files
  - new: https://git.openjdk.org/jdk/pull/10745/files/bafa0229..4e8ac797

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=10745&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=10745&range=00-01

  Stats: 4 lines in 4 files changed: 0 ins; 0 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/10745.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10745/head:pull/10745

PR: https://git.openjdk.org/jdk/pull/10745

Reply via email to