hamadmarri / TT-CPU-Scheduler

Task Type (TT) is an alternative CPU Scheduler for linux.
107 stars 12 forks source link

Build error: implicit declaration of function ‘update_load_add’ #17

Open jnsh opened 2 years ago

jnsh commented 2 years ago

Hello.

Trying out TT for the first time, and compiling against 5.16.4 with the tt-5.16.patch fails with the following error:

In file included from kernel/sched/bs.c:11:
kernel/sched/bs.h: In function ‘account_entity_enqueue’:
kernel/sched/bs.h:206:9: error: implicit declaration of function ‘update_load_add’; did you mean ‘update_load_avg’? [-Werror=implicit-function-declaration]
  206 |         update_load_add(&cfs_rq->load, se->load.weight);
      |         ^~~~~~~~~~~~~~~
      |         update_load_avg
kernel/sched/bs.h: In function ‘account_entity_dequeue’:
kernel/sched/bs.h:217:9: error: implicit declaration of function ‘update_load_sub’; did you mean ‘update_load_avg’? [-Werror=implicit-function-declaration]
  217 |         update_load_sub(&cfs_rq->load, se->load.weight);
      |         ^~~~~~~~~~~~~~~
      |         update_load_avg
In file included from kernel/sched/bs.c:1595:
kernel/sched/bs_nohz.h: In function ‘nohz_try_pull_from_candidate’:
kernel/sched/bs_nohz.h:719:24: warning: unused variable ‘cfs_rq’ [-Wunused-variable]
  719 |         struct cfs_rq *cfs_rq;
      |                        ^~~~~~

.config: config.txt

BGazotti commented 2 years ago

I'd get similar errors while trying to build it with TT_ACCOUNTING_STATS disabled. Try setting it to Y and see if that fixes it. A workaround, sure, but I doubt the added stats incur any noticeable overhead.

5.15 seems to not be affected by this. Perhaps we could take a look at what changed? Probably an added directive or two could fix it.