netdata / kernel-collector

Linux Kernel eBPF Collectors
61 stars 15 forks source link

Update algorithms #355

Closed thiagoftsm closed 1 year ago

thiagoftsm commented 1 year ago
Summary

This PR is updating some internal algorithms to simplify user ring codes.

Test Plan
  1. Get binaries according your LIBC from this link and extract them inside a directory, for example: ../artifacts. You can also get everything for glibc [here](UPLOAD FILE WITH ALL BINARIES TO SIMPLIFY REVIEWERS).

  2. Extract them running:

    $ for i in `ls *.zip`; do unzip $i; rm .gitkeep ; rm $i; done
    $ for i in `ls *.xz`; do tar -xf $i; rm $i* ; done
  3. Compile branch an run the following tests:

    # make clean; make tester
    # for i in `seq 0 3`; do ./kernel/legacy_test --netdata-path ../artifacts --cachestat --dc --filedescriptor --process --shm --socket --swap --vfs --content --iteration 1 --pid $i --log-path file_pid$i.txt; done
  4. Every test should ends with Success, unless you do not have a specific target (function) available.

Additional information

This PR was tested on:

Linux Distribution Environment Kernel Version Real Parent Parent All PIDs Without PIDs
Slackware Current Bare metal 6.1.55 slackware_6_1_pid0.txt slackware_6_1_pid1.txt slackware_6_1_pid2.txt slackware_6_1_pid3.txt
Arch Linux libvirt 6.5.5-arch1-1 arch_6_5_5_pid0.txt arch_6_5_5_pid1.txt arch_6_5_5_pid2.txt arch_6_5_5_pid3.txt
Ubuntu 22.04 libvirt 5.15.0-76-generic ubuntu_5_15_pid0.txt ubuntu_5_15_pid1.txt ubuntu_5_15_pid2.txt ubuntu_5_15_pid3.txt
Debian 11 libvirt 5.10.0-25-amd64 debian_5_10_pid0.txt debian_5_10_pid1.txt debian_5_10_pid2.txt debian_5_10_pid3.txt
Ubuntu 20.04 libvirt 5.4.0-146-generic file_pid0.txt file_pid1.txt file_pid2.txt file_pid3.txt
Ubuntu 18.04 libvrt 4.15.0-208-generic file_pid0.txt file_pid1.txt file_pid2.txt file_pid3.txt
Slackware Current Qemu 4.14.290 slackware_4_14_pid0.txt slackware_4_14_pid1.txt slackware_4_14_pid2.txt slackware_4_14_pid3.txt
CentOS 7.9 Libviirt 3.10.0-1160.99.1.el7.x86_64 centos_3_10_pid0.txt centos_3_10_pid1.txt centos_3_10_pid2.txt centos_3_10_pid3.txt