RFR: 8272773: Investigate making card table size configurable [v3]

Thomas Schatzl tschatzl at openjdk.java.net
Tue Nov 16 08:28:42 UTC 2021


On Mon, 15 Nov 2021 18:09:37 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

>> Are there any problems with waiting a bit for this change on PR#5909?
>> [Vishal] No issues. I think it would be a cleaner and better approach. 
>> 
>> Maybe you are also interested to try out the combination of PR#5909 and this one, allowing card table entry sizes from 128 to 1024 and any combination of region size iirc.
>> [Vishal] Yes, I'll try on my end different combinations of card sizes and region sizes. I'll report my observations.
>> 
>> In PR#5909 there is also the question of how large regions G1 should allow with that - the patch currently allows up to 512M regions, but theoretically there is no limit - do you have any opinion on that?
>> [Vishal] Currently, I have no strong opinion regarding the max. region size. I'll run specjbb2015 with different region sizes > 32m with different card sizes. I'll report if I find anything interesting.  
>> 
>> Thanks,
>> Vishal
>
> @vish-chan : the change for PR#5909 has finally been integrated. Sorry for the delay, things like a related bug delayed its integration more than expected.

> @tschatzl I tested PR#5909 and this change: The combination of 1024b card/512M region is giving 2-3% improvement over 1024b card/32M region in SPECjbb2015 on my setup. I haven't analyzed this is detail though.

Good that the changed did not optimize away the improvements.

> 
> Shall I update the pull request with new patch by:
> 
>     1. Removing min_card_size code as it is not relevant now.

Please do. It is unnecessary now as there are no limitations of the combination of card size/region size for G1 any more.

> 
>     2. Update minimum card size supported from 512 to 128/256? Need your input on the min card size value and default card size value.

I'd say make the minimum default. I looked a bit through literature, and the suggestion is that the minimum size used seems 128 bytes. That might be useful for smallish heaps.

Thanks,
  Thomas

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

PR: https://git.openjdk.java.net/jdk/pull/5838



More information about the hotspot-gc-dev mailing list