RFR: 8194823: Serial GC does not account GCs caused by TLAB allocation in GC overhead limit
Thomas Schatzl
tschatzl at openjdk.org
Thu May 25 10:52:00 UTC 2023
On Wed, 24 May 2023 10:54:16 GMT, Guoxiong Li <gli at openjdk.org> wrote:
> Hi all,
>
> This patch enables the gc overhead limit when allocating TLAB in serial gc.
> The main modification is at `GenCollectedHeap::allocate_new_tlab` and the other
> files only adjust the parameters of the method `allocate_new_tlab`.
>
> Thanks for the review.
>
> Best Regards,
> -- Guoxiong
Lgtm apart from parameter list formatting issues. Please fix before committing.
It's a bit unfortunate that support for this feature for one collector causes so many changes everywhere else. (But also indicates an issue with all other collectors not supporting it ;)). Maybe the parameters could be wrapped into something like an "AllocationRequest", but this is a) a separate issue, and b) needs to be discussed first with others.
src/hotspot/share/gc/parallel/parallelScavengeHeap.cpp line 518:
> 516:
> 517: HeapWord* ParallelScavengeHeap::allocate_new_tlab(size_t min_size, size_t requested_size, size_t* actual_size,
> 518: bool* gc_overhead_limit_was_exceeded) {
Suggestion:
HeapWord* ParallelScavengeHeap::allocate_new_tlab(size_t min_size,
size_t requested_size,
size_t* actual_size,
bool* gc_overhead_limit_was_exceeded) {
Parameter list formatting
src/hotspot/share/gc/parallel/parallelScavengeHeap.hpp line 106:
> 104: protected:
> 105: HeapWord* allocate_new_tlab(size_t min_size, size_t requested_size, size_t* actual_size,
> 106: bool* gc_overhead_limit_was_exceeded) override;
Suggestion:
HeapWord* allocate_new_tlab(size_t min_size,
size_t requested_size,
size_t* actual_size,
bool* gc_overhead_limit_was_exceeded) override;
Parameter formatting
src/hotspot/share/gc/shared/memAllocator.cpp line 325:
> 323: size_t min_tlab_size = ThreadLocalAllocBuffer::compute_min_size(_word_size);
> 324: mem = Universe::heap()->allocate_new_tlab(min_tlab_size, new_tlab_size, &allocation._allocated_tlab_size,
> 325: &allocation._overhead_limit_exceeded);
Suggestion:
mem = Universe::heap()->allocate_new_tlab(min_tlab_size,
new_tlab_size,
&allocation._allocated_tlab_size,
&allocation._overhead_limit_exceeded);
Parameter formatting
src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp line 535:
> 533:
> 534: HeapWord* allocate_new_tlab(size_t min_size, size_t requested_size, size_t* actual_size,
> 535: bool* gc_overhead_limit_was_exceeded) override;
Suggestion:
HeapWord* allocate_new_tlab(size_t min_size,
size_t requested_size,
size_t* actual_size,
bool* gc_overhead_limit_was_exceeded) override;
src/hotspot/share/gc/x/xCollectedHeap.cpp line 150:
> 148:
> 149: HeapWord* XCollectedHeap::allocate_new_tlab(size_t min_size, size_t requested_size, size_t* actual_size,
> 150: bool* gc_overhead_limit_was_exceeded) {
Suggestion:
HeapWord* XCollectedHeap::allocate_new_tlab(size_t min_size,
size_t requested_size,
size_t* actual_size,
bool* gc_overhead_limit_was_exceeded) {
src/hotspot/share/gc/z/zCollectedHeap.cpp line 145:
> 143:
> 144: HeapWord* ZCollectedHeap::allocate_new_tlab(size_t min_size, size_t requested_size, size_t* actual_size,
> 145: bool* gc_overhead_limit_was_exceeded) {
Suggestion:
HeapWord* ZCollectedHeap::allocate_new_tlab(size_t min_size,
size_t requested_size,
size_t* actual_size,
bool* gc_overhead_limit_was_exceeded) {
-------------
Marked as reviewed by tschatzl (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/14120#pullrequestreview-1443605666
PR Review Comment: https://git.openjdk.org/jdk/pull/14120#discussion_r1205332523
PR Review Comment: https://git.openjdk.org/jdk/pull/14120#discussion_r1205333052
PR Review Comment: https://git.openjdk.org/jdk/pull/14120#discussion_r1205333593
PR Review Comment: https://git.openjdk.org/jdk/pull/14120#discussion_r1205333968
PR Review Comment: https://git.openjdk.org/jdk/pull/14120#discussion_r1205334232
PR Review Comment: https://git.openjdk.org/jdk/pull/14120#discussion_r1205334518
More information about the hotspot-gc-dev
mailing list