First cut at a card table for Shenandoah
    Thomas Schatzl 
    thomas.schatzl at oracle.com
       
    Thu Jul 23 10:31:22 UTC 2020
    
    
  
Hi,
On 22.07.20 22:59, Roman Kennke wrote:
> I am not very familiar with all this stuff.
> 
> You should check if the C2 optimizations for card-table-barriers kick
> in. IIRC, there was something that elides those barriers on stores into
> new objects altogether, which make up the majority of stores.
> 
   if you are talking about eliding write barriers for new objects 
because they are "always" allocated in young gen, and no generational 
collector is interested in young->old references, there is no such thing 
afaik.
No collector guarantees this "always" property: e.g. CMS may directly 
decide to put new objects into old gen for a few reasons, and for 
parallel (and g1) it e.g. can happen that a gc right after allocating 
that object (when e.g. transitioning from native slow-path code) will 
move that object into old gen. Or simply when the object is large.
See e.g. https://bugs.openjdk.java.net/browse/JDK-8191342
That would still require the compiler to only apply that optimization if 
it can prove that the object is "small enough" to fit into young gen in 
any case (it is probably easy to get conservative enough values for that 
from somewhere).
Thanks,
   Thomas
    
    
More information about the shenandoah-dev
mailing list