RFR: 8272083: G1: Record iterated range for BOT performance during card scan [v5]
Stefan Johansson
sjohanss at openjdk.java.net
Thu Oct 28 08:03:12 UTC 2021
On Wed, 27 Oct 2021 08:44:39 GMT, Yude Lin <duke at openjdk.java.net> wrote:
> > One problem I see with using the refinement threads (to allow scaling better) is that it will probably make the heuristic for scaling the number of threads a bit more complicated, because there are two types of work that should be handled. Have you thought anything about that?
>
> I admit this is a bit hacky too. I noticed it breaks the heuristics, but just wanted to put this out for more discussion before I make the heuristics more complicated. Chances are that this solution has other unresolved problems (like mutator stall) and we won't go down this path and then I don't have to work on the heuristics. Sorry for being lazy here ; )
>
This is totally fine and it's really good to get things out for discussion early. This was not meant as a complaint but rather a question if you had any ideas in the area. I think figuring out a good solution for where (which threads, probably refinement thread) and when (the heuristic) is key for making a concurrent solution efficient and maintainable.
> > One way forward would be to first go with a solution doing the work inside the pause and then continue investigating how to move it to concurrent threads in an efficient and maintainable way.
>
> From these results, it looks like maintaining a precise BOT(that is, every entry points to an actual object start, not plab start) during evacuation isn't very costly in the first place. Maybe the pause-time solution is the best move for now.
>
> So if the direction is set, how do we go about making it happen? Do we change this pr for that purpose or do you want to submit another pr? I'm happy to contribute just so you know.
Since I have a pretty cleaned up PoC, I think moving forward with that one is probably good:
https://github.com/openjdk/jdk/compare/master...kstefanj:rnd-explicit-bot-updates
There are some things I need to clean up more before sending out for review. I think I will create a new enhancement for this and we can rename this enhancement to something like:
Move precise BOT updates in evacuation to concurrent phase
It would be great if you can help with reviewing that change and also test to see that it helps your uses-cases. How does that sound?
-------------
PR: https://git.openjdk.java.net/jdk/pull/5039
More information about the hotspot-gc-dev
mailing list