hamadmarri / ECHO-CPU-Scheduler

ECHO CPU Scheduler - Enhanced CPU Handling Orchestrator It is a CPU processes scheduler patch for Linux kernel.
29 stars 2 forks source link

Echo fails to compile on 6.9.3 on Gentoo #9

Open acjones8 opened 3 months ago

acjones8 commented 3 months ago

Hello everyone! I was curious in giving the ECHO scheduler a try with the CachyOS kernel sources on Gentoo, but I can't get the kernel to compile. The ECHO patches apply cleanly, but during the build process, it fails with this error:

In file included from kernel/sched/bs.c:747:
kernel/sched/balancer.h:627:17: warning: unused variable 'cfs_rq' [-Wunused-variable]
  627 |         struct cfs_rq *cfs_rq;
      |                        ^~~~~~
  CC      arch/x86/xen/suspend_pv.o
kernel/sched/bs.c:880:30: error: incompatible function pointer types passing 'void (struct softirq_action *)' to parameter of type 'void (*)(void)' [-Wincompatible-function-pointer-types]
  880 |         open_softirq(SCHED_SOFTIRQ, run_rebalance_domains);
      |                                     ^~~~~~~~~~~~~~~~~~~~~
./include/linux/interrupt.h:608:48: note: passing argument to parameter 'action' here
  608 | extern void __init open_softirq(int nr, void (*action)(void));
      |                                                ^
1 warning and 1 error generated.
make[4]: *** [scripts/Makefile.build:244: kernel/sched/bs.o] Error 1
make[3]: *** [scripts/Makefile.build:485: kernel/sched] Error 2
make[2]: *** [scripts/Makefile.build:485: kernel] Error 2
make[2]: *** Waiting for unfinished jobs....

I noticed that it looked extremely similar to bug #5 , failing in the same file and almost in the same location, so I added the fix-periodic patch into the build as a custom user patch. I can confirm that fix-periodic applies cleanly and without any errors, but it doesn't resolve this problem.

Please let me know if there's anything I can provide or do that would assist in fixing this issue.

hamadmarri commented 3 months ago

Hello @acjones8

Could you please upload the .config

acjones8 commented 3 months ago

Yes, absolutely. Below is my kernel config. It's the one that's installed by the cachyos-sources port, with the only manual change being that I enabled Clang Full LTO iirc. I do use modprobe-db to build only the kernel modules necessary for my hardware, if that would affect anything.

CachyOS-ECHO-ThinkPadA275-LLVM-LTO-MINI.txt