KEMBAR78
High percentage of unknown_Java for DaCapo avrora on Graviton 3 and 4 · Issue #1325 · async-profiler/async-profiler · GitHub
Skip to content

High percentage of unknown_Java for DaCapo avrora on Graviton 3 and 4 #1325

@WadeWalker

Description

@WadeWalker

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, then source set-up-instance.sh. This will install Java and async-profiler.
  • source ~/.profile to 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions