Skip to content

Commit dd5313f

Browse files
committed
[perforator] Document system requirements
commit_hash:fd63c18ac8d0167fd65a8c8855768f22ebd2704f
1 parent 97be1fb commit dd5313f

File tree

3 files changed

+25
-1
lines changed

3 files changed

+25
-1
lines changed

.mapping.json

+1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
"docs/en/reference/microscope/microscope.md":"perforator/docs/opensource/en/reference/microscope/microscope.md",
5252
"docs/en/reference/perfmap.md":"perforator/docs/opensource/en/reference/perfmap.md",
5353
"docs/en/reference/querylang.md":"perforator/docs/opensource/en/reference/querylang.md",
54+
"docs/en/reference/system-requirements.md":"perforator/docs/opensource/en/reference/system-requirements.md",
5455
"docs/en/toc.yaml":"perforator/docs/opensource/en/toc.yaml",
5556
"docs/en/tutorials/native-profiling.md":"perforator/docs/opensource/en/tutorials/native-profiling.md",
5657
"docs/en/tutorials/python-profiling.md":"perforator/docs/opensource/en/tutorials/python-profiling.md",
+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# System requirements
2+
This page describes the system requirements for running Perforator.
3+
4+
## Limitations
5+
Perforator profiling core is based on eBPF which is a relatively new technology and evolving rapidly. So there are some requirements on the system you can run Perforator on.
6+
7+
### Architecture
8+
The only supported architecture is x86-64. We plan to support aarch64 later though.
9+
10+
### Linux kernel version
11+
We support Linux 5.4 or newer. Before Linux 5.4 there was a hard limit on the number of eBPF instructions analyzed by verifier (no more than 4096 instructions), so the profiler is required to run in a very constrained environment. In 5.4 this limit was raised to 1M instructions. Moreover, latest version of the Linux kernel may not work. Complex eBPF programs that read kernel structures by design rely on evolving definitions of the kernel types, so they sometimes should be adapted to the new kernel versions. We test Perforator on all LTS kernels after 5.4, so if you are using LTS kernel you should be fine. Otherwise there is a minor probability that your kernel becomes incompatible with compiled Perforator version. We try to fix such issues as fast as possible.
12+
13+
In addition, the kernel should be compiled with [BPF Type Format](https://docs.kernel.org/bpf/btf.html) (BTF). You can check presence of file `/sys/kernel/btf/vmlinux` to determine if your kernel has BTF. Most modern Linux distributions enable BTF by default. See [this page](https://github.com/libbpf/libbpf#bpf-co-re-compile-once--run-everywhere) for more info.
14+
15+
### Root privileges
16+
Perforator agent should have `CAP_SYS_ADMIN` capability (in most cases this means the agent must run under root user). eBPF programs have access to raw kernel memory, so there is no way to run the agent in more restricted environments.
17+
18+
### LBR profiles
19+
Perforator supports collecting LBR profiles and collects LBR profiles by default. There are two additional requirements on the LBR profiles though:
20+
- The minimal supported kernel version is raised to 5.7. In Linux 5.7 the required eBPF helper which allows us to read last branch records was introduced.
21+
- LBR is supported on Intel processors only.
22+
Such requirements apply only if you are trying to collect and use LBR profiles (for example, for sPGO or BOLT).

docs/en/toc.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ items:
5252
items:
5353
- name: Query language
5454
href: reference/querylang.md
55+
- name: System requirements
56+
href: reference/system-requirements.md
5557
- name: Perfmap-based symbolization
5658
href: reference/perfmap.md
5759
- name: Databases
@@ -80,4 +82,3 @@ items:
8082
href: reference/language-support/java.md
8183
- name: Microscope
8284
href: reference/microscope.md
83-

0 commit comments

Comments
 (0)