Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
65e957e
Creating the index and first page.
geremyCohen May 8, 2025
e6e34b8
Creating the C4 install page.
geremyCohen May 9, 2025
4854a63
automatic update of stats files
May 19, 2025
bc6a339
Merge branch 'main' into go_sweet_bench
geremyCohen May 21, 2025
9643f63
Creating file structure
geremyCohen May 21, 2025
6fa780b
v1 of overview
geremyCohen May 21, 2025
3415039
wip
geremyCohen May 22, 2025
f4681c0
wip w/running remote benchmark runner
geremyCohen May 22, 2025
d89df07
Run benchmarks in parallel
geremyCohen May 22, 2025
a467fac
First version of visualizer, tested on etcd txt benchmark output
geremyCohen May 26, 2025
8ae04ff
automatic update of stats files
May 26, 2025
60c7259
Grouped values by instance by metric
geremyCohen May 27, 2025
313fb41
Added delta % below each grouping
geremyCohen May 27, 2025
3b1f133
Cleaned up labels a bit more
geremyCohen May 29, 2025
01eacdb
fixed formatting, unused imports
geremyCohen May 29, 2025
6f55cfb
Added arg parsing to override test defaults, and requirements.txt
geremyCohen May 30, 2025
e4502ab
Remove geomean chart since it is not a consistent metric.
geremyCohen May 30, 2025
cd98edc
Remove overall geomean chart, derive hostnames for instances, and fix…
geremyCohen May 30, 2025
7a57b36
Added argparse enhancements
geremyCohen May 30, 2025
b93d620
automatic update of stats files
Jun 2, 2025
6a5e8a3
Made some charting optimizations
geremyCohen Jun 2, 2025
74e3173
Set bar chart mode to group
geremyCohen Jun 2, 2025
a82824a
Tested install script for both archs
geremyCohen Jun 2, 2025
0e0137f
Sped up instances selection
geremyCohen Jun 2, 2025
1923e1b
Enhanced instance selection and visualization prompts in benchmark ex…
geremyCohen Jun 2, 2025
9772c30
Inlined benchstat_report into rexec_sweet
geremyCohen Jun 3, 2025
5930176
Improved chart labels
geremyCohen Jun 3, 2025
157891f
Enhance report generation output and automatically open in browser
geremyCohen Jun 3, 2025
691cff8
autoselect directory to chart
geremyCohen Jun 3, 2025
c07fbab
removed gvisor as its not supported on arm
geremyCohen Jun 3, 2025
6186594
WIP: Added manual benchstat/benchmarking procedure.
geremyCohen Jun 3, 2025
b5ed42b
WIP: Added automated procedure
geremyCohen Jun 4, 2025
42dcfc7
WIP: Added automated procedure
geremyCohen Jun 4, 2025
14a4f50
WIP: Added automated procedure
geremyCohen Jun 4, 2025
4ee1f79
full lp
JoeStech Jun 4, 2025
15e9ebd
gcc optimizations
JoeStech Jun 5, 2025
d47b930
addressing comments from 1 on 1 with Pareena
JoeStech Jun 6, 2025
677d11f
Refactored into modules
geremyCohen Jun 6, 2025
276b2d9
automatic update of stats files
Jun 9, 2025
db12396
Refactored v2 with Q
geremyCohen Jun 9, 2025
eba8f76
Added tests
geremyCohen Jun 9, 2025
db8bb89
better defaults
geremyCohen Jun 9, 2025
31aaddf
anycpu and versions file
JoeStech Jun 9, 2025
184059d
Refactor WIP
geremyCohen Jun 10, 2025
2fd095d
WIP
geremyCohen Jun 10, 2025
57e6c07
WIP
geremyCohen Jun 10, 2025
d635e43
add a new cobalt learning path to link to from the .NET path, and add…
JoeStech Jun 10, 2025
66aa6bc
WIP
geremyCohen Jun 10, 2025
51dd7c2
WIP
geremyCohen Jun 11, 2025
3da5263
Finished final chapter
geremyCohen Jun 11, 2025
cb09dea
UI clean up
geremyCohen Jun 11, 2025
7f71cb6
Final copyedits before PR
geremyCohen Jun 11, 2025
b8ce091
Merge branch 'main' into go_sweet_bench
geremyCohen Jun 11, 2025
95b777d
Merge branch 'main' into go_sweet_bench
geremyCohen Jun 11, 2025
6a6ddb3
Delete content/learning-paths/servers-and-cloud-computing/go-benchmar…
geremyCohen Jun 11, 2025
71d971c
Delete content/learning-paths/servers-and-cloud-computing/go-benchmar…
geremyCohen Jun 11, 2025
6209908
changes from testing anyCPU
JoeStech Jun 12, 2025
919d378
versioning page enhancements and fixes
JoeStech Jun 12, 2025
42a1694
formatting fixes
JoeStech Jun 12, 2025
1e162e6
initial commit
Jun 13, 2025
486353c
added top command explanation
Jun 13, 2025
14eb854
Merge pull request #2030 from JoeStech/dotnet_migration
pareenaverma Jun 13, 2025
2fb0e2a
automatic update of stats files
Jun 16, 2025
d70b2b5
tech review of BOLT Learning Path in progress
jasonrandrews Jun 16, 2025
f15479c
Merge pull request #2039 from jasonrandrews/review
jasonrandrews Jun 16, 2025
c5b2919
update orchardcore version
JoeStech Jun 16, 2025
0d99ca5
Remove capitalization on Edge LP
annietllnd Jun 16, 2025
a3ce5c9
Merge pull request #2040 from annietllnd/fix
jasonrandrews Jun 16, 2025
021aa6f
Merge pull request #2041 from JoeStech/dotnet_migration
pareenaverma Jun 16, 2025
a460bde
fixed the pytorch-llama lp
Jun 16, 2025
3989113
Merge pull request #2042 from nobelchowdary/pytorch-llama
pareenaverma Jun 16, 2025
9adc373
tech review of .NET and Cobalt VM Lps
pareenaverma Jun 16, 2025
e5656e8
Merge pull request #2043 from pareenaverma/uvision-review
pareenaverma Jun 16, 2025
76245b9
Add workaround in FVP install guide
annietllnd Jun 17, 2025
aec4c02
Starting content review
madeline-underwood Jun 17, 2025
62f4e50
Further updates
madeline-underwood Jun 17, 2025
bb03034
Updates
madeline-underwood Jun 17, 2025
4470ad6
Updates
madeline-underwood Jun 17, 2025
cf1d862
Updates
madeline-underwood Jun 17, 2025
460c5c1
Continue to review BOLT profile merging Learning Path
jasonrandrews Jun 17, 2025
7eba3a2
Merge pull request #2047 from jasonrandrews/review
jasonrandrews Jun 17, 2025
f96b550
Continue to review BOLT profile merging Learning Path
jasonrandrews Jun 17, 2025
cbb1a49
Merge pull request #2048 from jasonrandrews/review
jasonrandrews Jun 17, 2025
3fe15ac
Prototyping Safety-Critical for Autonomous Application on Neoverse
odincodeshen Jun 17, 2025
6595e84
Remove unnecessary files from Git history
odincodeshen Jun 17, 2025
9ef37c4
Merge branch 'ArmDeveloperEcosystem:main' into main
odincodeshen Jun 17, 2025
ce0babf
remove json file
madeline-underwood Jun 17, 2025
8e2db50
Initial tech review of Linux on FVP LP
annietllnd May 27, 2025
6859d1c
Remove draft status for review process
annietllnd Jun 16, 2025
b1e1cef
Add draft status back
annietllnd Jun 18, 2025
98570b8
Merge branch 'ArmDeveloperEcosystem:main' into NET-for-Cobalt
madeline-underwood Jun 18, 2025
0b1aa0f
Updated URL to .NET docs
madeline-underwood Jun 18, 2025
04d0e79
Merge branch 'NET-for-Cobalt' of https://github.com/madeline-underwoo…
madeline-underwood Jun 18, 2025
7d6e23e
Updates
madeline-underwood Jun 18, 2025
3653ad5
Improvements
madeline-underwood Jun 18, 2025
552d39b
Updates
madeline-underwood Jun 18, 2025
b3ebace
Merge pull request #1986 from annietllnd/review
pareenaverma Jun 18, 2025
9e5777a
Add cross-instance DDS communication verify session and gif file.
odincodeshen Jun 18, 2025
fcfa4d8
Merge branch 'ArmDeveloperEcosystem:main' into main
odincodeshen Jun 18, 2025
6ce6719
Remove unnecessary file from repository
odincodeshen Jun 18, 2025
9c83cbc
Merge pull request #2045 from annietllnd/fix
jasonrandrews Jun 18, 2025
d477b05
Correct the capital file name.
odincodeshen Jun 18, 2025
f9a80cd
Clarify issue related to executable stack in FVP
jasonrandrews Jun 18, 2025
f87d282
Merge pull request #2051 from jasonrandrews/review
jasonrandrews Jun 18, 2025
0a7b54b
Clarify MCP server configuration example to specify a local Github MC…
jasonrandrews Jun 18, 2025
cd6f87c
Merge pull request #2052 from jasonrandrews/review
jasonrandrews Jun 18, 2025
9f172f9
Update stats_current_test_info.yml
jasonrandrews Jun 18, 2025
2e61fca
Add single command install for Brave browser.
jasonrandrews Jun 18, 2025
e37cddf
Merge pull request #2054 from jasonrandrews/review
jasonrandrews Jun 18, 2025
6bfead9
Merge pull request #2053 from ArmDeveloperEcosystem/update-stats-curr…
jasonrandrews Jun 18, 2025
64be96f
Update _index.md
pareenaverma Jun 18, 2025
450b472
Merge branch 'ArmDeveloperEcosystem:main' into NET-for-Cobalt
madeline-underwood Jun 18, 2025
aed137e
Further enhancements
madeline-underwood Jun 18, 2025
c2f90ac
Merge branch 'NET-for-Cobalt' of https://github.com/madeline-underwoo…
madeline-underwood Jun 18, 2025
fb03de6
Merge pull request #2050 from odincodeshen/main
jasonrandrews Jun 18, 2025
a9fd438
Change automotive prototyping applications on Neoverse to draft mode
jasonrandrews Jun 18, 2025
e32e5d5
Merge pull request #2055 from jasonrandrews/review
jasonrandrews Jun 18, 2025
e4ce03d
Updates
madeline-underwood Jun 18, 2025
30ca2a8
Updates
madeline-underwood Jun 18, 2025
465d115
Merge branch 'ArmDeveloperEcosystem:main' into NET-for-Cobalt
madeline-underwood Jun 19, 2025
88033cb
Updates
madeline-underwood Jun 19, 2025
c2aa829
Merge branch 'NET-for-Cobalt' of https://github.com/madeline-underwoo…
madeline-underwood Jun 19, 2025
8a334c8
Updates
madeline-underwood Jun 19, 2025
4d88dde
Final tweaks
madeline-underwood Jun 19, 2025
479a6c5
updated index to go to developer's process
Jun 19, 2025
1c0de35
Merge pull request #2027 from geremyCohen/go_sweet_bench
pareenaverma Jun 19, 2025
7e271e3
Tech review part sweet part1
pareenaverma Jun 19, 2025
bd9e9e6
Update BOLT SPE documentation.
paschalis-mpeis Jun 20, 2025
c8028b3
Merge branch 'ArmDeveloperEcosystem:main' into NET-for-Cobalt
madeline-underwood Jun 20, 2025
448f9e3
Merge pull request #2058 from paschalis-mpeis/bolt-spe-brstack
jasonrandrews Jun 20, 2025
8d81b24
Merge pull request #2057 from zachlasiuk/main
jasonrandrews Jun 20, 2025
dc8c326
Merge pull request #2046 from madeline-underwood/NET-for-Cobalt
jasonrandrews Jun 20, 2025
dd4a1a4
Final checks
madeline-underwood Jun 20, 2025
c00ff6d
Merge branch 'NET-for-Cobalt' of https://github.com/madeline-underwoo…
madeline-underwood Jun 20, 2025
9071496
Merge branch 'ArmDeveloperEcosystem:main' into NET-for-Cobalt
madeline-underwood Jun 20, 2025
b2ff7a9
Merge pull request #2059 from madeline-underwood/NET-for-Cobalt
jasonrandrews Jun 20, 2025
4b08db9
Merge pull request #2033 from kieranhejmadi01/dc-perf
jasonrandrews Jun 20, 2025
f13c5e4
Tech review go/sweet LP
pareenaverma Jun 20, 2025
0f95401
Merge pull request #2060 from pareenaverma/content_review
pareenaverma Jun 20, 2025
28308f7
Review DCPerf install guide
jasonrandrews Jun 20, 2025
9c04723
Merge pull request #2061 from jasonrandrews/review
jasonrandrews Jun 20, 2025
5f294d1
Review BOLT merging Learning Path
jasonrandrews Jun 20, 2025
1bee811
Code clarification
madeline-underwood Jun 20, 2025
109b69d
Merge pull request #2062 from jasonrandrews/review
jasonrandrews Jun 20, 2025
3a64bfa
Updates
madeline-underwood Jun 20, 2025
8beabf7
tweaks
madeline-underwood Jun 20, 2025
c4ebab0
spelling and tag updates
jasonrandrews Jun 20, 2025
fbc9a0b
Merge pull request #2064 from jasonrandrews/review
jasonrandrews Jun 20, 2025
99c2628
Merge pull request #2063 from madeline-underwood/DCPerf
jasonrandrews Jun 20, 2025
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
92 changes: 90 additions & 2 deletions .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1657,7 +1657,6 @@ Kconfig
buildroot
RMM
Bolt
Optimisation
PGO
llvmorg
latencies
Expand Down Expand Up @@ -4235,4 +4234,93 @@ libssl
misclassification
retransmission
subquery
uninstrumented
uninstrumented
ASIL
AdvSIMD
AnyCPU
BIST
BMS
Benchstat
Bleve
CMS
CPUx
CockroachDB
CycloneDDS
DCPS
DCPerf
DataReaders
DataWriters
Dn
EV
Gi
GopherLua
HARA
HHVM
HIL
HipHop
JIRA
Jayat
Julien
MISRA
MarkdownRenderXHTML
MediaWiki
NET's
NSG
OrchardCMS
OrchardCore
PATHNAME
Polarion
QoS
RSS
Req
SELinux
STS
ThreadPool
VM's
VM’s
autorun
azureuser
bb
benchstat
biogo
bitness
bleve
br
brstack
cockroachdb
cycloneDDS
differentiators
esbuild
etcd
facebookresearch
gRPC
geomean
geomeans
geospatial
hardcoding
igor
interop
ipfrag
ipv
krishna
metaprogramming
minifies
misprediction
multicast
multicore
odinlmshen
optimise
orchardcore
ov
pathname
psci
retuned
rexec
rmem
roadmap
runnable
taskset
unicast
wrk's
yy
zenoh
2 changes: 1 addition & 1 deletion assets/contributors.csv
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ Odin Shen,Arm,odincodeshen,odin-shen-lmshen,,
Avin Zarlez,Arm,AvinZarlez,avinzarlez,,https://www.avinzarlez.com/
Shuheng Deng,Arm,,,,
Yiyang Fan,Arm,,,,
Julien Jayat,Arm,,,,
Julien Jayat,Arm,JulienJayat-Arm,julien-jayat-a980a397,,
Geremy Cohen,Arm,geremyCohen,geremyinanutshell,,
Barbara Corriero,Arm,,,,
Nina Drozd,Arm,NinaARM,ninadrozd,,
Expand Down
2 changes: 1 addition & 1 deletion content/install-guides/aws-q-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ You can ask Amazon Q to set the default model for future sessions.

## Install an MCP server

As an example of using MCP with Amazon Q, you can configure the Github MCP server.
As an example of using MCP with Amazon Q, you can configure a local Github MCP server.

Go to your GitHub account developer settings and create a personal access token with the following permissions:

Expand Down
9 changes: 4 additions & 5 deletions content/install-guides/bolt.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,19 +145,19 @@ You are now ready to [verify BOLT is installed](#verify).
For Arm Linux use the file with `aarch64` in the name:

```bash
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.5/clang+llvm-17.0.5-aarch64-linux-gnu.tar.xz
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.7/clang+llvm-19.1.7-aarch64-linux-gnu.tar.xz
```

2. Extract the downloaded file

```bash
tar -xvf clang+llvm-17.0.5-aarch64-linux-gnu.tar.xz
tar -xvf clang+llvm-19.1.7-aarch64-linux-gnu.tar.xz
```

3. Add the path to BOLT in your `.bashrc` file

```bash
echo 'export PATH="$PATH:$HOME/clang+llvm-17.0.5-aarch64-linux-gnu/bin"' >> ~/.bashrc
echo 'export PATH="$PATH:$HOME/clang+llvm-19.1.7-aarch64-linux-gnu/bin"' >> ~/.bashrc
source ~/.bashrc
```

Expand Down Expand Up @@ -201,9 +201,8 @@ The output is similar to:

```output
LLVM (http://llvm.org/):
LLVM version 18.0.0git
LLVM version 19.1.7
Optimized build with assertions.
BOLT revision 99c15eb49ba0b607314b3bd221f0760049130d97

Registered Targets:
aarch64 - AArch64 (little endian)
Expand Down
10 changes: 9 additions & 1 deletion content/install-guides/browsers/brave.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,15 @@ The Brave browser runs on Windows on Arm as a native ARM64 application, and is a

### Linux

To install Brave on Linux:
There are two options to install Brave on Linux.

To install Brave with a single command:

```bash
curl -fsS https://dl.brave.com/install.sh | sh
```

To install Brave using multiple commands:

{{< tabpane code=true >}}
{{< tab header="Ubuntu/Debian" language="bash">}}
Expand Down
192 changes: 192 additions & 0 deletions content/install-guides/dcperf.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
---
title: DCPerf
author: Kieran Hejmadi
minutes_to_complete: 20
official_docs: https://github.com/facebookresearch/DCPerf?tab=readme-ov-file#install-and-run-benchmarks

additional_search_terms:
- linux
- Neoverse

test_images:
- ubuntu:22.04
test_maintenance: false

layout: installtoolsall
multi_install: false
multitool_install_part: false
tool_install: true
weight: 1
---

## Introduction

DCPerf is an open-source benchmarking and microbenchmarking suite originally developed by Meta. It faithfully replicates the characteristics of general-purpose data center workloads, with particular attention to microarchitectural fidelity. DCPerf stands out for accurate simulation of behaviors such as cache misses and branch mispredictions, which are details that many other benchmarking tools overlook.

You can use DCPerf to generate performance data to inform procurement decisions, and for regression testing to detect changes in the environment, such as kernel and compiler changes.

DCPerf runs on Arm-based servers. The examples below have been tested on an AWS `c7g.metal` instance running Ubuntu 22.04 LTS.

{{% notice Note %}}
When running on a server provided by a cloud service, you have limited access to some parameters, such as UEFI settings, which can affect performance.
{{% /notice %}}

## Install prerequisites

To get started, install the required software:

```bash
sudo apt update
sudo apt install -y python-is-python3 python3-pip python3-venv git
```

It is recommended that you install Python packages in a Python virtual environment.

Set up your virtual environment:

```bash
python3 -m venv venv
source venv/bin/activate
```
If requested, restart the recommended services.

Install the required packages:

```bash
pip3 install click pyyaml tabulate pandas
```

Clone the repository:

```bash
git clone https://github.com/facebookresearch/DCPerf.git
cd DCPerf
```

## Running the MediaWiki benchmark

DCPerf offers many benchmarks. See the official documentation for the benchmark of your choice.

One example is the MediaWiki benchmark, designed to faithfully reproduce the workload of the Facebook social networking site.

Install HipHop Virtual Machine (HHVM), a virtual machine used to execute the web application code:

```bash
wget https://github.com/facebookresearch/DCPerf/releases/download/hhvm/hhvm-3.30-multplatform-binary-ubuntu.tar.xz
tar -Jxf hhvm-3.30-multplatform-binary-ubuntu.tar.xz
cd hhvm
sudo ./pour-hhvm.sh
export LD_LIBRARY_PATH="/opt/local/hhvm-3.30/lib:$LD_LIBRARY_PATH"
```

Confirm `hhvm` is available. The `hhvm` binary is located in the `DCPerf/hhvm/aarch64-ubuntu22.04/hhvm-3.30/bin` directory:

```bash
hhvm --version
# Return to the DCPerf root directory
cd ..
```

You should see output similar to:

```output
HipHop VM 3.30.12 (rel)
Compiler: 1704922878_080332982
Repo schema: 4239d11395efb06bee3ab2923797fedfee64738e
```

Confirm security-enhanced Linux (SELinux) is disabled with the following commands:

```bash
sudo apt install selinux-utils
getenforce
```

You should see the following response:

```output
Disabled
```

If you do not see the `Disabled` output, see your Linux distribution documentation for information about how to disable SELinux.

You can automatically install all dependencies for each benchmark using the `install` argument with the `benchpress_cli.py` command-line script:

```console
sudo ./benchpress_cli.py install oss_performance_mediawiki_mlp
```

This step might take several minutes to complete, depending on your system's download and setup speed.

## Run the MediaWiki benchmark

For the sake of brevity, you can provide the duration and timeout arguments using a `JSON` dictionary with the `-i` argument:

```console
sudo ./benchpress_cli.py run oss_performance_mediawiki_mlp -i '{
"duration": "30s",
"timeout": "1m"
}'
```

While the benchmark is running, you can monitor CPU activity and observe benchmark-related processes using the `top` command.

When the benchmark is complete, a `benchmark_metrics_*` directory is created within the `DCPerf` directory, containing a `JSON` file for the system specs and another for the metrics.

For example, the metrics file lists the following:

```output
"metrics": {
"Combined": {
"Nginx 200": 1817810,
"Nginx 404": 79019,
"Nginx 499": 3,
"Nginx P50 time": 0.036,
"Nginx P90 time": 0.056,
"Nginx P95 time": 0.066,
"Nginx P99 time": 0.081,
"Nginx avg bytes": 158903.93039183,
"Nginx avg time": 0.038826036781319,
"Nginx hits": 1896832,
"Wrk RPS": 3160.65,
"Wrk failed requests": 79019,
"Wrk requests": 1896703,
"Wrk successful requests": 1817684,
"Wrk wall sec": 600.1,
"canonical": 0
},
"score": 2.4692578125
```

## Understanding the benchmark results

The metrics file contains several key performance indicators from the benchmark run:


- **Nginx 200, 404, 499**: The number of HTTP responses with status codes 200 (success), 404 (not found), and 499 (client closed request) returned by the Nginx web server during the test.
- **Nginx P50/P90/P95/P99 time**: The response time percentiles (in seconds) for requests handled by Nginx. For example, P50 is the median response time, P99 is the time under which 99% of requests completed.
- **Nginx avg bytes**: The average number of bytes sent per response.
- **Nginx avg time**: The average response time for all requests.
- **Nginx hits**: The total number of requests handled by Nginx.
- **Wrk RPS**: The average number of requests per second (RPS) generated by the `wrk` load testing tool.
- **Wrk failed requests**: The number of requests that failed during the test.
- **Wrk requests**: The total number of requests sent by `wrk`.
- **Wrk successful requests**: The number of requests that completed successfully.
- **Wrk wall sec**: The total wall-clock time (in seconds) for the benchmark run.
- **score**: An overall performance score calculated by DCPerf, which can be used to compare different systems or configurations.

{{% notice Note %}}
`wrk` is a modern HTTP benchmarking tool used to generate load and measure web server performance. It is widely used for benchmarking because it can produce significant load and provides detailed statistics. For more information, see [wrk's GitHub page](https://github.com/wg/wrk).
{{% /notice %}}

These metrics help you evaluate the performance and reliability of the system under test. Higher values for successful requests and RPS, and lower response times, generally indicate better performance. The score provides a single value for easy comparison across runs or systems.

## Next steps

These are some activites you might like to try next:

* Use the results to compare performance across different systems, hardware configurations, or after making system changes, such as kernel, compiler, or driver updates.

* Consider tuning system parameters or trying alternative DCPerf benchmarks to further evaluate your environment.

* Explore additional DCPerf workloads, including those that simulate key-value stores, in-memory caching, or machine learning inference.
16 changes: 15 additions & 1 deletion content/install-guides/fm_fvp/fvp.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Fixed Virtual Platforms (FVP)
minutes_to_complete: 15
official_docs: https://developer.arm.com/documentation/100966/
author: Ronan Synnott
weight: 3
weight: 3

### FIXED, DO NOT MODIFY
tool_install: false # Set to true to be listed in main selection page, else false
Expand Down Expand Up @@ -69,3 +69,17 @@ telnetterminal2: Listening for serial connection on port 5002
A visualization of the FVP will also be displayed.

Terminate the FVP with `Ctrl+C`.

{{% notice %}}
You might run into an enablement issue related to the stack:
```
cannot enable executable stack as shared object requires: Invalid argument
```
This stems from the status of the the exec flag, a security feature which helps prevent certain types of buffer overflow attacks. FVPs use just-in-time compilation and require an executable stack to function properly.

You can a workaround this error using `execstack` on each of the runtime binaries in the error trace.
```
execstack -c <binary>
```
{{% /notice %}}

Loading
Loading