mirror of
https://github.com/eunomia-bpf/bpf-developer-tutorial.git
synced 2026-02-04 02:34:16 +08:00
* Add combined on-CPU and off-CPU profiler script - Implemented a new profiling tool that captures both on-CPU and off-CPU activity for a specified process. - The script runs 'oncputime' and 'offcputime' tools simultaneously and combines their results into a unified flamegraph. - Added functionality to discover threads and profile them individually if the application is multi-threaded. - Included error handling for tool execution and output processing. - Created methods for generating flamegraph data and SVG visualizations. - Added command-line argument parsing for user-defined profiling parameters. - Implemented detailed analysis reports for both individual threads and overall profiling results. * feat: integrate blazesym v0.2.0 for improved symbol resolution and add test program for memory leak detection * docs: update README to enhance wall clock profiling tutorial with detailed explanations and examples * feat: add wallclock-profiler tests to CI workflow for tool validation * fix: rename combined_profiler.py to wallclock_profiler.py in test scripts and usage examples
98 lines
3.1 KiB
YAML
98 lines
3.1 KiB
YAML
name: Test eunomia-bpf example CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ "main" ]
|
|
pull_request:
|
|
branches: [ "main" ]
|
|
schedule:
|
|
- cron: '0 0 * * 0'
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
submodules: 'recursive'
|
|
- name: install deps
|
|
run: |
|
|
sudo apt-get install -y --no-install-recommends \
|
|
libelf1 libelf-dev zlib1g-dev \
|
|
make git clang llvm pkg-config build-essential
|
|
- name: test 11 bootstrap
|
|
run: |
|
|
make -C src/11-bootstrap
|
|
sudo timeout -s 2 3 src/11-bootstrap/bootstrap || if [ $? = 124 ]; then exit 0; else exit $?; fi
|
|
- name: test 12 profile
|
|
run: |
|
|
make -C src/12-profile
|
|
# sudo timeout -s 2 3 src/12-profile/profile || if [ $? = 124 ]; then exit 0; else exit $?; fi
|
|
- name: test 13 tcpconnlat
|
|
run: |
|
|
make -C src/13-tcpconnlat
|
|
sudo timeout -s 2 3 src/13-tcpconnlat/tcpconnlat || if [ $? = 124 ]; then exit 0; else exit $?; fi
|
|
- name: test 14 tcpstates
|
|
run: |
|
|
make -C src/14-tcpstates
|
|
sudo timeout -s 2 3 src/14-tcpstates/tcpstates || if [ $? = 124 ]; then exit 0; else exit $?; fi
|
|
- name: test 16 memleak
|
|
run: |
|
|
make -C src/16-memleak
|
|
sudo timeout -s 2 3 src/16-memleak/memleak || if [ $? = 124 ]; then exit 0; else exit $?; fi
|
|
- name: test 17 biopattern
|
|
run: |
|
|
make -C src/17-biopattern
|
|
sudo timeout -s 2 3 src/17-biopattern/biopattern || if [ $? = 124 ]; then exit 0; else exit $?; fi
|
|
- name: test 23 http
|
|
run: |
|
|
make -C src/23-http
|
|
sudo timeout -s 2 3 src/23-http/sockfilter || if [ $? = 124 ]; then exit 0; else exit $?; fi
|
|
- name: test 28 detach
|
|
run: |
|
|
make -C src/28-detach
|
|
sudo mount bpffs -t bpf /sys/fs/bpf
|
|
sudo mkdir /sys/fs/bpf/textreplace
|
|
# sudo src/28-detach/textreplace2 -f /proc/modules -i 'joydev' -r 'cryptd' -d || if [ $? = 124 ]; then exit 0; else exit $?; fi
|
|
- name: test 29 sockops
|
|
run: |
|
|
make -C src/29-sockops
|
|
# TODO: add test
|
|
- name: test 30 sslsniff
|
|
run: |
|
|
make -C src/30-sslsniff
|
|
sudo timeout -s 2 3 src/30-sslsniff/sslsniff || if [ $? = 124 ]; then exit 0; else exit $?; fi
|
|
|
|
- name: test 32 wallclock-profiler
|
|
run: |
|
|
make -C src/32-wallclock-profiler
|
|
# Test individual tools can be built and show help
|
|
src/32-wallclock-profiler/oncputime --help || true
|
|
src/32-wallclock-profiler/offcputime --help || true
|
|
|
|
- name: test 33 funclatency
|
|
run: |
|
|
make -C src/33-funclatency
|
|
- name: test 35-user-ringbuf
|
|
run: |
|
|
make -C src/35-user-ringbuf
|
|
sudo timeout -s 2 3 src/35-user-ringbuf/user_ringbuf || if [ $? = 124 ]; then exit 0; else exit $?; fi
|
|
|
|
- name: test 41 xdp
|
|
run: |
|
|
make -C src/41-xdp-tcpdump
|
|
|
|
- name: test 42 xdp
|
|
run: |
|
|
make -C src/42-xdp-loadbalancer
|
|
|
|
- name: test 43 kfuncs
|
|
run: |
|
|
make -C src/43-kfuncs
|
|
|
|
- name: test 44
|
|
run: |
|
|
make -C src/44-scx-simple
|
|
- name: test 45
|
|
run: |
|
|
make -C src/45-scx-nest
|