-
Notifications
You must be signed in to change notification settings - Fork 938
Description
Describe the bug
Hi guys,
When I profile DaCapo's avrora benchmark on a variety of EC2 instance types, I see that on arm64 machines there is a large percentage of stack traces (~9%) starting from unknown_Java. This doesn't occur for the same benchmark on Intel or AMD machines.
Expected vs. actual behavior
Expected output is like these files (remove .txt suffix to view), with ~0.3% unknown_Java:
dacapo-avrora-m6a.metal-profile.html.txt
dacapo-avrora-m6i.metal-profile.html.txt
dacapo-avrora-m7a.metal-48xl-profile.html.txt
dacapo-avrora-m7i.metal-24xl-profile.html.txt
Actual output is like these files (remove .txt suffix to view), with 9% unknown_Java:
dacapo-avrora-m7g.metal-profile.html.txt
dacapo-avrora-m8g.metal-24xl-profile.html.txt
Reproduction Steps
Here are the reproduction instructions, starting from a totally empty new EC2 instance. It may also work on an already-set-up Ubuntu machine, but I haven't tried that.
- Provision a fresh Amazon EC2 m6a.metal instance with the standard Ubuntu 24.04 AMI. Give it an EBS volume of 40 GB or so, to hold the JDK and benchmark we're going to install on it.
- Copy this setup script to the machine: set-up-instance.sh.txt
- Log into the machine, type
mv set-up-instance.sh.txt set-up-instance.sh, thensource set-up-instance.sh. This will install Java and async-profiler. source ~/.profileto get the JDK on your path (the setup script adds a line to the .profile)- Download the benchmark with
curl -L -O "https://download.dacapobench.org/chopin/dacapo-23.11-MR2-chopin.zip" - Unzip the benchmark with
unzip dacapo-23.11-MR2-chopin.zip - Run the benchmark with
java -agentpath:/home/ubuntu/async-profiler-4.0-linux-x64/lib/libasyncProfiler.so=start,event=cpu,file=profile.html -jar dacapo-23.11-MR2-chopin.jar avrora -n 30 - Look in profile.html to observe the failure :)
Additional Information/Context
No response
Async-profiler version
4.0
Environment details
OS: Ubuntu 24.04, using Amazon's standard image at the path /aws/service/canonical/ubuntu/server/24.04/stable/current/
JDK: OpenJDK24U-jdk_x64_linux_hotspot_24.0.1_9
CPU: m6a.metal (AMD EPYC 7R13), m7a.metal (AMD EPYC 9R14), m6i.metal (Intel Xeon Platinum 8375C), m7i.metal-24xl (Intel Xeon Platinum 8488C), m7g.metal (Arm Neoverse-V1 Graviton 3), m8g.metal-24xl (Arm Neoverse-V2 Graviton 4)
The application is running on AWS EC2 metal instances, not in a container.