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

x/benchmarks/sweet: support for arm64 #54760

Open
2 tasks
prattmic opened this issue Aug 29, 2022 · 8 comments
Open
2 tasks

x/benchmarks/sweet: support for arm64 #54760

prattmic opened this issue Aug 29, 2022 · 8 comments
Assignees
Labels
NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@prattmic
Copy link
Member

prattmic commented Aug 29, 2022

I am testing on a GCE T2A arm64 instance running Debian bullseye. So far I've encountered a few issues:

  • fogleman-fauxgl is either extremely slow or completely stuck. Needs more investigation.
  • go-build fails due to error creating systemd-run user scope: test.scope: Failed to add PIDs to scope's control group: Permission denied

cc @mknyszek

@prattmic prattmic added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Aug 29, 2022
@prattmic prattmic added this to the Unreleased milestone Aug 29, 2022
@prattmic prattmic self-assigned this Aug 29, 2022
@prattmic
Copy link
Member Author

(The latter issue in particular may be a general Debian bullseye issue, rather than an arm64 issue)

@gopherbot
Copy link

Change https://go.dev/cl/426237 mentions this issue: sweet/benchmarks/go-build: pass through stdout/stderr

@gopherbot
Copy link

Change https://go.dev/cl/426238 mentions this issue: sweet/benchmark/internal/cgroups: test system-run functionality

@prattmic
Copy link
Member Author

fogleman-fauxgl is either extremely slow or completely stuck.

It is stuck. We get stuck in this loop because d is +Inf and thus x0 + int(d) overflows and becomes a huge negative number. The immediate cause is division by zero in one of ra12, ra20, or ra01 (which one varies). The reproduction is very consistent, always on the 34641st call to rasterize in go run ./examples/animate.go ./examples/boat.stl from https://github.com/fogleman/fauxgl.

I can't follow this code well enough to tell if this is a legitimate floating point compilation issue on arm64 in the compiler, or this is a bug in the library not handling infinity properly. That said, I suspect the latter given that there is already a special case for spurious d < 0.

@gopherbot
Copy link

Change https://go.dev/cl/426714 mentions this issue: sweet/cmd/sweet: disable fogleman-fauxgl on arm64

gopherbot pushed a commit to golang/benchmarks that referenced this issue Aug 30, 2022
In case systemd-run fails, we'd like to see the error in results.

For golang/go#54760.

Change-Id: Id19d938308d25cf37bbb9e129ce1ec9e89ac8726
Reviewed-on: https://go-review.googlesource.com/c/benchmarks/+/426237
Run-TryBot: Michael Pratt <mpratt@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
gopherbot pushed a commit to golang/benchmarks that referenced this issue Aug 30, 2022
Add a rudimentary test for starting a user scope with systemd-run. If it
doesn't work, then skip the wrapper.

For golang/go#54760.

Change-Id: I7b742b49ae453b8d485d7d0c008b9fb9148c37ac
Reviewed-on: https://go-review.googlesource.com/c/benchmarks/+/426238
Run-TryBot: Michael Pratt <mpratt@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
gopherbot pushed a commit to golang/benchmarks that referenced this issue Aug 30, 2022
fogleman-fauxgl hangs on arm64, so disable it from the default benchmark
groups. It can still be requested explicitly.

For golang/go#54760.

Change-Id: I8252c7475c3855d1bd2b03608b6e23e5249d1ab4
Reviewed-on: https://go-review.googlesource.com/c/benchmarks/+/426714
Run-TryBot: Michael Pratt <mpratt@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
@zhangfannie
Copy link
Contributor

zhangfannie commented Feb 1, 2024

@prattmic The error message when running system-run is printed in the benchmark result file, which can easily lead users to mistakenly think that the benchmark itself has failed.
Can we not print the error message of running system-run? Or are there other considerations?
Below is the result of the go-build benchmark.

# warning: systemd-run not available: system-run failed: exit status 1

journalctl output: -- No entries --

systemctl cleanup error: exit status 1
output: Failed to reset failed state of unit systemd-run-test-1706769187427737350.scope: Unit systemd-run-test-1706769187427737350.scope not loaded.

# skipping cgroup wrapper...
BenchmarkGoBuildKubelet 1 53021729362 ns/op
BenchmarkGoBuildKubeletLink 1 11654922090 ns/op

Thank you.

@prattmic
Copy link
Member Author

prattmic commented Feb 2, 2024

I think it would be nice to print the warning once, but I agree the full output is noisy. Feel free to send a CL simplifying it.

@zhangfannie
Copy link
Contributor

zhangfannie commented Feb 4, 2024

Feel free to send a CL simplifying it.

Thank you for your reply.
Since x/benchmarks is not our internal repo for the time being, considering that this will not affect performance testing, we will put it aside for now.
Thank you.

DarrylWong pushed a commit to DarrylWong/go-benchmarks that referenced this issue Apr 22, 2024
In case systemd-run fails, we'd like to see the error in results.

For golang/go#54760.

Change-Id: Id19d938308d25cf37bbb9e129ce1ec9e89ac8726
DarrylWong pushed a commit to DarrylWong/go-benchmarks that referenced this issue Apr 22, 2024
Add a rudimentary test for starting a user scope with systemd-run. If it
doesn't work, then skip the wrapper.

For golang/go#54760.

Change-Id: I7b742b49ae453b8d485d7d0c008b9fb9148c37ac
DarrylWong pushed a commit to DarrylWong/go-benchmarks that referenced this issue Apr 22, 2024
fogleman-fauxgl hangs on arm64, so disable it from the default benchmark
groups. It can still be requested explicitly.

For golang/go#54760.

Change-Id: I8252c7475c3855d1bd2b03608b6e23e5249d1ab4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
Status: In Progress
Development

No branches or pull requests

3 participants