Skip to content

Commit 69443b3

Browse files
Merge pull request #2065 from ArmDeveloperEcosystem/main
production update
2 parents 3277d3a + 99c2628 commit 69443b3

File tree

125 files changed

+3171
-828
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+3171
-828
lines changed

.wordlist.txt

Lines changed: 90 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1657,7 +1657,6 @@ Kconfig
16571657
buildroot
16581658
RMM
16591659
Bolt
1660-
Optimisation
16611660
PGO
16621661
llvmorg
16631662
latencies
@@ -4235,4 +4234,93 @@ libssl
42354234
misclassification
42364235
retransmission
42374236
subquery
4238-
uninstrumented
4237+
uninstrumented
4238+
ASIL
4239+
AdvSIMD
4240+
AnyCPU
4241+
BIST
4242+
BMS
4243+
Benchstat
4244+
Bleve
4245+
CMS
4246+
CPUx
4247+
CockroachDB
4248+
CycloneDDS
4249+
DCPS
4250+
DCPerf
4251+
DataReaders
4252+
DataWriters
4253+
Dn
4254+
EV
4255+
Gi
4256+
GopherLua
4257+
HARA
4258+
HHVM
4259+
HIL
4260+
HipHop
4261+
JIRA
4262+
Jayat
4263+
Julien
4264+
MISRA
4265+
MarkdownRenderXHTML
4266+
MediaWiki
4267+
NET's
4268+
NSG
4269+
OrchardCMS
4270+
OrchardCore
4271+
PATHNAME
4272+
Polarion
4273+
QoS
4274+
RSS
4275+
Req
4276+
SELinux
4277+
STS
4278+
ThreadPool
4279+
VM's
4280+
VM’s
4281+
autorun
4282+
azureuser
4283+
bb
4284+
benchstat
4285+
biogo
4286+
bitness
4287+
bleve
4288+
br
4289+
brstack
4290+
cockroachdb
4291+
cycloneDDS
4292+
differentiators
4293+
esbuild
4294+
etcd
4295+
facebookresearch
4296+
gRPC
4297+
geomean
4298+
geomeans
4299+
geospatial
4300+
hardcoding
4301+
igor
4302+
interop
4303+
ipfrag
4304+
ipv
4305+
krishna
4306+
metaprogramming
4307+
minifies
4308+
misprediction
4309+
multicast
4310+
multicore
4311+
odinlmshen
4312+
optimise
4313+
orchardcore
4314+
ov
4315+
pathname
4316+
psci
4317+
retuned
4318+
rexec
4319+
rmem
4320+
roadmap
4321+
runnable
4322+
taskset
4323+
unicast
4324+
wrk's
4325+
yy
4326+
zenoh

assets/contributors.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ Odin Shen,Arm,odincodeshen,odin-shen-lmshen,,
8282
Avin Zarlez,Arm,AvinZarlez,avinzarlez,,https://www.avinzarlez.com/
8383
Shuheng Deng,Arm,,,,
8484
Yiyang Fan,Arm,,,,
85-
Julien Jayat,Arm,,,,
85+
Julien Jayat,Arm,JulienJayat-Arm,julien-jayat-a980a397,,
8686
Geremy Cohen,Arm,geremyCohen,geremyinanutshell,,
8787
Barbara Corriero,Arm,,,,
8888
Nina Drozd,Arm,NinaARM,ninadrozd,,

content/install-guides/aws-q-cli.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ You can ask Amazon Q to set the default model for future sessions.
235235

236236
## Install an MCP server
237237

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

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

content/install-guides/bolt.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,19 +145,19 @@ You are now ready to [verify BOLT is installed](#verify).
145145
For Arm Linux use the file with `aarch64` in the name:
146146

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

151151
2. Extract the downloaded file
152152

153153
```bash
154-
tar -xvf clang+llvm-17.0.5-aarch64-linux-gnu.tar.xz
154+
tar -xvf clang+llvm-19.1.7-aarch64-linux-gnu.tar.xz
155155
```
156156

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

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

@@ -201,9 +201,8 @@ The output is similar to:
201201

202202
```output
203203
LLVM (http://llvm.org/):
204-
LLVM version 18.0.0git
204+
LLVM version 19.1.7
205205
Optimized build with assertions.
206-
BOLT revision 99c15eb49ba0b607314b3bd221f0760049130d97
207206
208207
Registered Targets:
209208
aarch64 - AArch64 (little endian)

content/install-guides/browsers/brave.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,15 @@ The Brave browser runs on Windows on Arm as a native ARM64 application, and is a
2929

3030
### Linux
3131

32-
To install Brave on Linux:
32+
There are two options to install Brave on Linux.
33+
34+
To install Brave with a single command:
35+
36+
```bash
37+
curl -fsS https://dl.brave.com/install.sh | sh
38+
```
39+
40+
To install Brave using multiple commands:
3341

3442
{{< tabpane code=true >}}
3543
{{< tab header="Ubuntu/Debian" language="bash">}}

content/install-guides/dcperf.md

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
---
2+
title: DCPerf
3+
author: Kieran Hejmadi
4+
minutes_to_complete: 20
5+
official_docs: https://github.com/facebookresearch/DCPerf?tab=readme-ov-file#install-and-run-benchmarks
6+
7+
additional_search_terms:
8+
- linux
9+
- Neoverse
10+
11+
test_images:
12+
- ubuntu:22.04
13+
test_maintenance: false
14+
15+
layout: installtoolsall
16+
multi_install: false
17+
multitool_install_part: false
18+
tool_install: true
19+
weight: 1
20+
---
21+
22+
## Introduction
23+
24+
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.
25+
26+
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.
27+
28+
DCPerf runs on Arm-based servers. The examples below have been tested on an AWS `c7g.metal` instance running Ubuntu 22.04 LTS.
29+
30+
{{% notice Note %}}
31+
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.
32+
{{% /notice %}}
33+
34+
## Install prerequisites
35+
36+
To get started, install the required software:
37+
38+
```bash
39+
sudo apt update
40+
sudo apt install -y python-is-python3 python3-pip python3-venv git
41+
```
42+
43+
It is recommended that you install Python packages in a Python virtual environment.
44+
45+
Set up your virtual environment:
46+
47+
```bash
48+
python3 -m venv venv
49+
source venv/bin/activate
50+
```
51+
If requested, restart the recommended services.
52+
53+
Install the required packages:
54+
55+
```bash
56+
pip3 install click pyyaml tabulate pandas
57+
```
58+
59+
Clone the repository:
60+
61+
```bash
62+
git clone https://github.com/facebookresearch/DCPerf.git
63+
cd DCPerf
64+
```
65+
66+
## Running the MediaWiki benchmark
67+
68+
DCPerf offers many benchmarks. See the official documentation for the benchmark of your choice.
69+
70+
One example is the MediaWiki benchmark, designed to faithfully reproduce the workload of the Facebook social networking site.
71+
72+
Install HipHop Virtual Machine (HHVM), a virtual machine used to execute the web application code:
73+
74+
```bash
75+
wget https://github.com/facebookresearch/DCPerf/releases/download/hhvm/hhvm-3.30-multplatform-binary-ubuntu.tar.xz
76+
tar -Jxf hhvm-3.30-multplatform-binary-ubuntu.tar.xz
77+
cd hhvm
78+
sudo ./pour-hhvm.sh
79+
export LD_LIBRARY_PATH="/opt/local/hhvm-3.30/lib:$LD_LIBRARY_PATH"
80+
```
81+
82+
Confirm `hhvm` is available. The `hhvm` binary is located in the `DCPerf/hhvm/aarch64-ubuntu22.04/hhvm-3.30/bin` directory:
83+
84+
```bash
85+
hhvm --version
86+
# Return to the DCPerf root directory
87+
cd ..
88+
```
89+
90+
You should see output similar to:
91+
92+
```output
93+
HipHop VM 3.30.12 (rel)
94+
Compiler: 1704922878_080332982
95+
Repo schema: 4239d11395efb06bee3ab2923797fedfee64738e
96+
```
97+
98+
Confirm security-enhanced Linux (SELinux) is disabled with the following commands:
99+
100+
```bash
101+
sudo apt install selinux-utils
102+
getenforce
103+
```
104+
105+
You should see the following response:
106+
107+
```output
108+
Disabled
109+
```
110+
111+
If you do not see the `Disabled` output, see your Linux distribution documentation for information about how to disable SELinux.
112+
113+
You can automatically install all dependencies for each benchmark using the `install` argument with the `benchpress_cli.py` command-line script:
114+
115+
```console
116+
sudo ./benchpress_cli.py install oss_performance_mediawiki_mlp
117+
```
118+
119+
This step might take several minutes to complete, depending on your system's download and setup speed.
120+
121+
## Run the MediaWiki benchmark
122+
123+
For the sake of brevity, you can provide the duration and timeout arguments using a `JSON` dictionary with the `-i` argument:
124+
125+
```console
126+
sudo ./benchpress_cli.py run oss_performance_mediawiki_mlp -i '{
127+
"duration": "30s",
128+
"timeout": "1m"
129+
}'
130+
```
131+
132+
While the benchmark is running, you can monitor CPU activity and observe benchmark-related processes using the `top` command.
133+
134+
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.
135+
136+
For example, the metrics file lists the following:
137+
138+
```output
139+
"metrics": {
140+
"Combined": {
141+
"Nginx 200": 1817810,
142+
"Nginx 404": 79019,
143+
"Nginx 499": 3,
144+
"Nginx P50 time": 0.036,
145+
"Nginx P90 time": 0.056,
146+
"Nginx P95 time": 0.066,
147+
"Nginx P99 time": 0.081,
148+
"Nginx avg bytes": 158903.93039183,
149+
"Nginx avg time": 0.038826036781319,
150+
"Nginx hits": 1896832,
151+
"Wrk RPS": 3160.65,
152+
"Wrk failed requests": 79019,
153+
"Wrk requests": 1896703,
154+
"Wrk successful requests": 1817684,
155+
"Wrk wall sec": 600.1,
156+
"canonical": 0
157+
},
158+
"score": 2.4692578125
159+
```
160+
161+
## Understanding the benchmark results
162+
163+
The metrics file contains several key performance indicators from the benchmark run:
164+
165+
166+
- **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.
167+
- **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.
168+
- **Nginx avg bytes**: The average number of bytes sent per response.
169+
- **Nginx avg time**: The average response time for all requests.
170+
- **Nginx hits**: The total number of requests handled by Nginx.
171+
- **Wrk RPS**: The average number of requests per second (RPS) generated by the `wrk` load testing tool.
172+
- **Wrk failed requests**: The number of requests that failed during the test.
173+
- **Wrk requests**: The total number of requests sent by `wrk`.
174+
- **Wrk successful requests**: The number of requests that completed successfully.
175+
- **Wrk wall sec**: The total wall-clock time (in seconds) for the benchmark run.
176+
- **score**: An overall performance score calculated by DCPerf, which can be used to compare different systems or configurations.
177+
178+
{{% notice Note %}}
179+
`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).
180+
{{% /notice %}}
181+
182+
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.
183+
184+
## Next steps
185+
186+
These are some activites you might like to try next:
187+
188+
* Use the results to compare performance across different systems, hardware configurations, or after making system changes, such as kernel, compiler, or driver updates.
189+
190+
* Consider tuning system parameters or trying alternative DCPerf benchmarks to further evaluate your environment.
191+
192+
* Explore additional DCPerf workloads, including those that simulate key-value stores, in-memory caching, or machine learning inference.

content/install-guides/fm_fvp/fvp.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Fixed Virtual Platforms (FVP)
33
minutes_to_complete: 15
44
official_docs: https://developer.arm.com/documentation/100966/
55
author: Ronan Synnott
6-
weight: 3
6+
weight: 3
77

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

7171
Terminate the FVP with `Ctrl+C`.
72+
73+
{{% notice %}}
74+
You might run into an enablement issue related to the stack:
75+
```
76+
cannot enable executable stack as shared object requires: Invalid argument
77+
```
78+
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.
79+
80+
You can a workaround this error using `execstack` on each of the runtime binaries in the error trace.
81+
```
82+
execstack -c <binary>
83+
```
84+
{{% /notice %}}
85+

0 commit comments

Comments
 (0)