linux icon indicating copy to clipboard operation
linux copied to clipboard

support sysdig-dkms in tt

Open dreamcat4 opened this issue 2 years ago • 5 comments

hi there, it would be great to support this! (if possible)

to get this tool working... we seem to be missing some things needed for sysdig-dkms kernel module. BTW sysdig is a tool for live system debugging / analysis

    1. kernel config is missing flag CONFIG_TRACEPOINTS

and

    1. dkms wont build the kernel module.

some functions are missing. sorry not sure why this occur. but this exact same kernel module will compile for other recent kernels from other sources. for example ubuntu mainline and also liquorix. so it must be something a bit different happen here with xanmod cacule. but no idea why / what is wrong sorry to say

$ sudo dkms build sysdig/0.27.1

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
make -j12 KERNELRELEASE=5.14.14-xanmod2-cacule -C /lib/modules/5.14.14-xanmod2-cacule/build M=/var/lib/dkms/sysdig/0.27.1/build...(bad exit status: 2)
ERROR (dkms apport): kernel package linux-headers-5.14.14-xanmod2-cacule is not supported
Error! Bad return status for module build on kernel: 5.14.14-xanmod2-cacule (x86_64)
Consult /var/lib/dkms/sysdig/0.27.1/build/make.log for more information.
θ85° [id:~] 10 $ sudo ccat /var/lib/dkms/sysdig/0.27.1/build/make.log
DKMS make.log for sysdig-0.27.1 for kernel 5.14.14-xanmod2-cacule (x86_64)
Sun 24 Oct 15:43:05 BST 2021
make: Entering directory '/usr/src/linux-headers-5.14.14-xanmod2-cacule'
  CC [M]  /var/lib/dkms/sysdig/0.27.1/build/main.o
  CC [M]  /var/lib/dkms/sysdig/0.27.1/build/dynamic_params_table.o
  CC [M]  /var/lib/dkms/sysdig/0.27.1/build/fillers_table.o
  CC [M]  /var/lib/dkms/sysdig/0.27.1/build/flags_table.o
  CC [M]  /var/lib/dkms/sysdig/0.27.1/build/ppm_events.o
  CC [M]  /var/lib/dkms/sysdig/0.27.1/build/ppm_fillers.o
  CC [M]  /var/lib/dkms/sysdig/0.27.1/build/event_table.o
  CC [M]  /var/lib/dkms/sysdig/0.27.1/build/syscall_table.o
  CC [M]  /var/lib/dkms/sysdig/0.27.1/build/ppm_cputime.o
/var/lib/dkms/sysdig/0.27.1/build/main.c: In function ‘drop_event’:
/var/lib/dkms/sysdig/0.27.1/build/main.c:1531:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
 1531 |   nanoseconds rem;
      |   ^~~~~~~~~~~
  LD [M]  /var/lib/dkms/sysdig/0.27.1/build/sysdig-probe.o
  MODPOST /var/lib/dkms/sysdig/0.27.1/build/Module.symvers
ERROR: modpost: "tracepoint_probe_register" [/var/lib/dkms/sysdig/0.27.1/build/sysdig-probe.ko] undefined!
ERROR: modpost: "for_each_kernel_tracepoint" [/var/lib/dkms/sysdig/0.27.1/build/sysdig-probe.ko] undefined!
ERROR: modpost: "tracepoint_probe_unregister" [/var/lib/dkms/sysdig/0.27.1/build/sysdig-probe.ko] undefined!
make[1]: *** [scripts/Makefile.modpost:150: /var/lib/dkms/sysdig/0.27.1/build/Module.symvers] Error 1
make[1]: *** Deleting file '/var/lib/dkms/sysdig/0.27.1/build/Module.symvers'
make: *** [Makefile:1774: modules] Error 2
make: Leaving directory '/usr/src/linux-headers-5.14.14-xanmod2-cacule'
θ85° [id:~] $ 

dreamcat4 avatar Oct 24 '21 15:10 dreamcat4

Cacule is not updated anymore (the repo is now read-only): https://github.com/hamadmarri/cacule-cpu-scheduler/

Vistaus avatar Nov 16 '21 16:11 Vistaus

@Vistaus not true, development still seems active. Just they moved the active development over to new repo name CachyOS

https://github.com/CachyOS/cacule-cpu-scheduler

dreamcat4 avatar Nov 16 '21 17:11 dreamcat4

@Vistaus not true, development still seems active. Just they moved the active development over to new repo name CachyOS

https://github.com/CachyOS/cacule-cpu-scheduler

That's not true as that is a different developer who has forked Cacule. The original developer of Cacule is now working on TT: https://github.com/hamadmarri/TT-CPU-Scheduler

Of which XanMod has a build: https://github.com/xanmod/linux/releases/tag/5.15.2-xanmod1-tt XanMod Cacule is not updated anymore.

Vistaus avatar Nov 16 '21 17:11 Vistaus

thanks for clearing that up! it is appreciated to know thanks

dreamcat4 avatar Nov 16 '21 17:11 dreamcat4

update:

  • checked out the xanmod git repo, on branch 5.15-tt
  • added CONFIG_TRACEPOINTS to the kernel config (by enabling Kernel Hacking --> Tracers)
  • compiled the kernel, rebooted
  • installed sysdig-dkms, it then built the kernel module successfully

The sysdig tool now works on my system. On the most recent xanmod-tt kernel.

Summary

  • It is only necessary to enable CONFIG_TRACEPOINTS in the kernel config
  • Then all of the other dkms build errors goes away

Now I understand that enabling tracing is not something we necessarily want to do. Because it can reduce performance a bit. And these kernels are supposed to be optimized for high performance.

However sysdig is a very useful and important profiling tool. It does the job of dtrace but is much easier to use. So if you can give me some simple benchmarks to run and compare. With and without this kernel option enabled.

What benchmarks do you run yourself for testing xanmod? Let me know. And hopefully I can come back later with some comparison(s). Some hard numbers. Between enabling it and not.

Many thanks

dreamcat4 avatar Nov 18 '21 16:11 dreamcat4