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

setting GRUB_CMDLINE_LINUX, example usage of perf c2c #420

Merged
merged 1 commit into from
Oct 2, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion perfrunbook/debug_hw_perf.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,8 @@ On Ubuntu to enable SPE requires four extra steps
# Install the arm_spe_pmu.ko module
sudo apt install linux-modules-extra-$(uname -r)

# Add kpti=off to the kernel boot command line
# Add kpti=off to the kernel boot command line: GRUB_CMDLINE_LINUX in /etc/default/grub, to set it for all the installed kernels.
# Note, the options passed to GRUB_CMDLINE_LINUX_DEFAULT will only propagate to the default kernel and not to all the installed kernels.
# Reboot instance

sudo modprobe arm_spe_pmu
Expand All @@ -230,6 +231,11 @@ the samples directly, you can use the [Arm SPE Parser](https://gitlab.arm.com/te

Be aware that SPE produces a large of volume of data (many GBs) if the sampling period is low and you collect the data over a long time.

### Capturing cache coherence issues
The `perf c2c` command can be used to analyze cache coherence issues and false sharing in multi-core systems. It needs SPE PMU available on Graviton metal instances.

`perf c2c record ./application`

### Capturing Coherent Mesh Network (CMN) hardware events on Graviton metal instances

On Graviton the CMN connects the CPUs to each other, to the memory controller, the I/O subsystem and provides the System Level Cache.
Expand Down