Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(check_golang_profiler_changes): acknowledge new golang profiler changes #135

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Oct 29, 2024

This PR is created by godeltaprof/compat/cmd/check_golang_profiler_changes/main.go to notify src/runtime/mprof.go or src/runtime/pprof in golang are updated.
Please take look at the golang commits and update godeltaprof accordingly if needed.
Merge the PR to acknowledge golang runtime changes and state no further actions needed for godeltaprof.

src/runtime/mprof.go
last known 8730fcf88531152c42de9ff1e80d9b3c762d9944
current 6c660052856feae2bf1f3fe44665b5da0002500d

commit 6c660052856feae2bf1f3fe44665b5da0002500d
Author: Michael Anthony Knyszek <[email protected]>
Date:   Fri Jun 21 17:01:23 2024 +0000

    internal/sync: move sync.Mutex implementation into new package
    
    This CL refactors sync.Mutex such that its implementation lives in the
    new internal/sync package. The purpose of this change is to eventually
    reverse the dependency edge between internal/concurrent and sync, such
    that sync can depend on internal/concurrent (or really, its contents,
    which will likely end up in internal/sync).
    
    The only change made to the sync.Mutex code is the frame skip count for
    mutex profiling, so that the internal/sync frames are omitted in the
    profile.
    
    Change-Id: Ib3603d30e8e71508c4ea883a584ae2e51ce40c3f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/594056
    LUCI-TryBot-Result: Go LUCI <[email protected]>
    Reviewed-by: David Chase <[email protected]>
    Auto-Submit: Michael Knyszek <[email protected]>

src/runtime/pprof
last known 2a98a1849f059ffa94ab23a1ab7d8fa0fd0b48dd
current 669d87a935536eb14cb2db311a83345359189924

commit 669d87a935536eb14cb2db311a83345359189924
Author: Cosmos Nicolaou <[email protected]>
Date:   Thu Dec 19 15:55:05 2024 -0800

    runtime/pprof: continued attempt to deflake the VMInfo test.
    
    This change catches an additional error message to trigger skipping
    the test when the underlying system is failing.
    
    Fixes #62352
    
    Change-Id: I5c12b20f3e9023597ff89fc905c0646a80ec4811
    Reviewed-on: https://go-review.googlesource.com/c/go/+/637995
    Reviewed-by: Cherry Mui <[email protected]>
    Auto-Submit: Michael Pratt <[email protected]>
    Reviewed-by: Michael Pratt <[email protected]>
    LUCI-TryBot-Result: Go LUCI <[email protected]>

commit a925402b62c06d1cfe2b345cba0b11fa06b8401d
Author: cuishuang <[email protected]>
Date:   Wed Nov 20 21:56:27 2024 +0800

    all: fix some function names and typos in comment
    
    Change-Id: I07e7c8eaa5bd4bac0d576b2f2f4cd3f81b0b77a4
    Reviewed-on: https://go-review.googlesource.com/c/go/+/630055
    LUCI-TryBot-Result: Go LUCI <[email protected]>
    Commit-Queue: Ian Lance Taylor <[email protected]>
    Reviewed-by: Ian Lance Taylor <[email protected]>
    Reviewed-by: Russ Cox <[email protected]>
    Auto-Submit: Ian Lance Taylor <[email protected]>

commit ca63101df47a4467bc80faa654fc19d68e583952
Author: Felix Geisendörfer <[email protected]>
Date:   Tue Mar 26 20:23:42 2024 +0100

    runtime/pprof: reduce label overhead
    
    Switch labelMap from map[string]string to use LabelSet as a data
    structure. Optimize Labels() for the case where the keys are given in
    sorted order without duplicates.
    
    This is primarily motivated by reducing the overhead of distributed
    tracing systems that use pprof labels. We have encountered cases where
    users complained about the overhead relative to the rest of our
    distributed tracing library code. Additionally, we see this as an
    opportunity to free up hundreds of CPU cores across our fleet.
    
    A secondary motivation is eBPF profilers that try to access pprof
    labels. The current map[string]string requires them to implement Go map
    access in eBPF, which is non-trivial. With the enablement of swiss maps,
    this complexity is only increasing. The slice data structure introduced
    in this CL will greatly lower the implementation complexity for eBPF
    profilers in the future. But to be clear: This change does not imply
    that the pprof label mechanism is now a stable ABI. They are still an
    implementation detail and may change again in the future.
    
    goos: darwin
    goarch: arm64
    pkg: runtime/pprof
    cpu: Apple M1 Max
                                       │ baseline.txt │             patch1.txt              │
                                       │    sec/op    │   sec/op     vs base                │
    Labels/set-one-10                    153.50n ± 3%   75.00n ± 1%  -51.14% (p=0.000 n=10)
    Labels/merge-one-10                   187.8n ± 1%   128.8n ± 1%  -31.42% (p=0.000 n=10)
    Labels/overwrite-one-10               193.1n ± 2%   102.0n ± 1%  -47.18% (p=0.000 n=10)
    Labels/ordered/set-many-10            502.6n ± 4%   146.1n ± 2%  -70.94% (p=0.000 n=10)
    Labels/ordered/merge-many-10          516.3n ± 2%   238.1n ± 1%  -53.89% (p=0.000 n=10)
    Labels/ordered/overwrite-many-10      569.3n ± 4%   247.6n ± 2%  -56.51% (p=0.000 n=10)
    Labels/unordered/set-many-10          488.9n ± 2%   308.3n ± 3%  -36.94% (p=0.000 n=10)
    Labels/unordered/merge-many-10        523.6n ± 1%   258.5n ± 1%  -50.64% (p=0.000 n=10)
    Labels/unordered/overwrite-many-10    571.4n ± 1%   412.1n ± 2%  -27.89% (p=0.000 n=10)
    geomean                               366.8n        186.9n       -49.05%
    
                                       │ baseline.txt │             patch1b.txt              │
                                       │     B/op     │     B/op      vs base                │
    Labels/set-one-10                      424.0 ± 0%     104.0 ± 0%  -75.47% (p=0.000 n=10)
    Labels/merge-one-10                    424.0 ± 0%     200.0 ± 0%  -52.83% (p=0.000 n=10)
    Labels/overwrite-one-10                424.0 ± 0%     136.0 ± 0%  -67.92% (p=0.000 n=10)
    Labels/ordered/set-many-10            1344.0 ± 0%     392.0 ± 0%  -70.83% (p=0.000 n=10)
    Labels/ordered/merge-many-10          1184.0 ± 0%     712.0 ± 0%  -39.86% (p=0.000 n=10)
    Labels/ordered/overwrite-many-10      1056.0 ± 0%     712.0 ± 0%  -32.58% (p=0.000 n=10)
    Labels/unordered/set-many-10          1344.0 ± 0%     712.0 ± 0%  -47.02% (p=0.000 n=10)
    Labels/unordered/merge-many-10        1184.0 ± 0%     712.0 ± 0%  -39.86% (p=0.000 n=10)
    Labels/unordered/overwrite-many-10   1.031Ki ± 0%   1.008Ki ± 0%   -2.27% (p=0.000 n=10)
    geomean                                843.1          405.1       -51.95%
    
                                       │ baseline.txt │             patch1b.txt              │
                                       │  allocs/op   │ allocs/op   vs base                  │
    Labels/set-one-10                      5.000 ± 0%   3.000 ± 0%  -40.00% (p=0.000 n=10)
    Labels/merge-one-10                    5.000 ± 0%   5.000 ± 0%        ~ (p=1.000 n=10) ¹
    Labels/overwrite-one-10                5.000 ± 0%   4.000 ± 0%  -20.00% (p=0.000 n=10)
    Labels/ordered/set-many-10             8.000 ± 0%   3.000 ± 0%  -62.50% (p=0.000 n=10)
    Labels/ordered/merge-many-10           8.000 ± 0%   5.000 ± 0%  -37.50% (p=0.000 n=10)
    Labels/ordered/overwrite-many-10       7.000 ± 0%   4.000 ± 0%  -42.86% (p=0.000 n=10)
    Labels/unordered/set-many-10           8.000 ± 0%   4.000 ± 0%  -50.00% (p=0.000 n=10)
    Labels/unordered/merge-many-10         8.000 ± 0%   5.000 ± 0%  -37.50% (p=0.000 n=10)
    Labels/unordered/overwrite-many-10     7.000 ± 0%   5.000 ± 0%  -28.57% (p=0.000 n=10)
    geomean                                6.640        4.143       -37.60%
    ¹ all samples are equal
    
    Change-Id: Ie68e960a25c2d97bcfb6239dc481832fa8a39754
    Reviewed-on: https://go-review.googlesource.com/c/go/+/574516
    Reviewed-by: Michael Knyszek <[email protected]>
    Auto-Submit: Felix Geisendörfer <[email protected]>
    LUCI-TryBot-Result: Go LUCI <[email protected]>
    Reviewed-by: Michael Pratt <[email protected]>

commit 8ac0a7c512e7c1bf6fb94feb09b2f878d8eb14a1
Author: Cosmos Nicolaou <[email protected]>
Date:   Fri Feb 2 17:12:27 2024 -0800

    runtime/pprof: continued attempt to deflake the VMInfo test.
    
    This PR will use test.Skip to bypass a test run for which the vmmap
    subprocess appears to hang before the test times out.
    In addition it catches a different error message from vmmap that can
    occur due to transient resource shortages and triggers a retry for
    this additional case.
    
    Fixes #62352
    
    Change-Id: I3ae749e5cd78965c45b1b7c689b896493aa37ba0
    Reviewed-on: https://go-review.googlesource.com/c/go/+/560935
    Reviewed-by: Michael Pratt <[email protected]>
    Reviewed-by: Cherry Mui <[email protected]>
    LUCI-TryBot-Result: Go LUCI <[email protected]>

commit d7ea9ff50b6c0386c7784b27f66083396fa404af
Author: Sean Liao <[email protected]>
Date:   Fri Jul 12 21:13:20 2024 +0100

    runtime/pprof: note different between go test -memprofile and WriteHeapProfile
    
    Fixes #65328
    
    Change-Id: I11242be93a95e117a6758ac037e143c3b38aa71c
    Reviewed-on: https://go-review.googlesource.com/c/go/+/597980
    LUCI-TryBot-Result: Go LUCI <[email protected]>
    Reviewed-by: Carlos Amedee <[email protected]>
    Reviewed-by: Cherry Mui <[email protected]>
    Auto-Submit: Michael Pratt <[email protected]>

commit 411ba0ae8608a0829a185d83f122d83c8a51c754
Author: Felix Geisendörfer <[email protected]>
Date:   Tue Mar 26 20:23:30 2024 +0100

    runtime/pprof: add label benchmark
    
    Add several benchmarks for pprof labels to analyze the impact of
    follow-up CLs.
    
    Change-Id: Ifae39cfe83ec93858fce9e3af6c1be024ba76736
    Reviewed-on: https://go-review.googlesource.com/c/go/+/574515
    Auto-Submit: Ian Lance Taylor <[email protected]>
    Reviewed-by: David Chase <[email protected]>
    LUCI-TryBot-Result: Go LUCI <[email protected]>
    Reviewed-by: Michael Pratt <[email protected]>

commit e8bb9129d185bf98ba173ec018bf2b6c9d62aa6c
Author: Nick Ripley <[email protected]>
Date:   Fri Nov 1 13:43:34 2024 -0400

    runtime/pprof: relax TestProfilerStackDepth
    
    The TestProfilerStackDepth/heap test can spuriously fail if the profiler
    happens to capture a stack with an allocation several frames deep into
    runtime code. The pprof API hides runtime frames at the leaf-end of
    stacks, but those frames still count against the profiler's stack depth
    limit. The test checks only the first stack it finds with the desired
    prefix and fails if it's not deep enough or doesn't have the right root
    frame. So it can fail in that scenario, even though the implementation
    isn't really broken.
    
    Relax the test to check that there is at least one stack with desired
    prefix, depth, and root frame.
    
    Fixes #70112
    
    Change-Id: I337fb3cccd1ddde76530b03aa1ec0f9608aa4112
    Reviewed-on: https://go-review.googlesource.com/c/go/+/623998
    Reviewed-by: Felix Geisendörfer <[email protected]>
    Reviewed-by: Michael Pratt <[email protected]>
    Reviewed-by: Cherry Mui <[email protected]>
    LUCI-TryBot-Result: Go LUCI <[email protected]>

commit 579eb79f62d92db872d730f5fe954ca2b7dce8ae
Author: Michael Anthony Knyszek <[email protected]>
Date:   Mon Oct 28 17:23:40 2024 +0000

    all: skip and fix various tests with -asan and -msan
    
    First, skip all the allocation count tests.
    
    In some cases this aligns with existing skips for -race, but in others
    we've got new issues. These are debug modes, so some performance loss is
    expected, and this is clearly no worse than today where the tests fail.
    
    Next, skip internal linking and static linking tests for msan and asan.
    
    With asan we get an explicit failure that neither are supported by the C
    and/or Go compilers. With msan, we only get the Go compiler telling us
    internal linking is unavailable. With static linking, we segfault
    instead. Filed #70080 to track that.
    
    Next, skip some malloc tests with asan that don't quite work because of
    the redzone.
    
    This is because of some sizeclass assumptions that get broken with the
    redzone and the fact that the tiny allocator is effectively disabled
    (again, due to the redzone).
    
    Next, skip some runtime/pprof tests with asan, because of extra
    allocations.
    
    Next, skip some malloc tests with asan that also fail because of extra
    allocations.
    
    Next, fix up memstats accounting for arenas when asan is enabled. There
    is a bug where more is added to the stats than subtracted. This also
    simplifies the accounting a little.
    
    Next, skip race tests with msan or asan enabled; they're mutually
    incompatible.
    
    Fixes #70054.
    Fixes #64256.
    Fixes #64257.
    For #70079.
    For #70080.
    
    Change-Id: I99c02a0b9d621e44f1f918b307aa4a4944c3ec60
    Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-asan-clang15,gotip-linux-amd64-msan-clang15
    Reviewed-on: https://go-review.googlesource.com/c/go/+/622855
    Reviewed-by: Cherry Mui <[email protected]>
    TryBot-Bypass: Michael Knyszek <[email protected]>

@github-actions github-actions bot requested review from a team as code owners October 29, 2024 04:30
@github-actions github-actions bot force-pushed the check_golang_profiler_changes_1730176201 branch 7 times, most recently from cdff1ac to db05435 Compare November 5, 2024 04:29
@github-actions github-actions bot force-pushed the check_golang_profiler_changes_1730176201 branch 8 times, most recently from b13aafd to ff58478 Compare November 13, 2024 04:29
@github-actions github-actions bot force-pushed the check_golang_profiler_changes_1730176201 branch 7 times, most recently from 3589e0d to 145f4d9 Compare November 20, 2024 04:30
@github-actions github-actions bot force-pushed the check_golang_profiler_changes_1730176201 branch 5 times, most recently from cc5c3a6 to ac9eb76 Compare November 25, 2024 04:30
@github-actions github-actions bot force-pushed the check_golang_profiler_changes_1730176201 branch 8 times, most recently from ab28021 to 2d22501 Compare December 9, 2024 04:30
@github-actions github-actions bot force-pushed the check_golang_profiler_changes_1730176201 branch 7 times, most recently from eb6fccb to 7755087 Compare December 16, 2024 04:31
@github-actions github-actions bot force-pushed the check_golang_profiler_changes_1730176201 branch 8 times, most recently from 0d9294b to 5f2916d Compare December 24, 2024 04:29
@github-actions github-actions bot force-pushed the check_golang_profiler_changes_1730176201 branch 4 times, most recently from 11ebd0d to 4f53346 Compare December 28, 2024 04:29
@github-actions github-actions bot force-pushed the check_golang_profiler_changes_1730176201 branch from 4f53346 to af1f2b0 Compare December 29, 2024 04:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant