Open3

WasmLinux: スケジューラclassの順序がおかしい問題

okuokuokuoku

とりあえず start_kernel までは到達したものの、このチェックに引っかかってしまう:

https://github.com/lkl/linux/blob/3023e6f25fbf6d5f95b4e7ebd011fa688434ce5f/kernel/sched/core.c#L9631-L9639

... これはさすがにどうしようも無くないか。。?通常はリンカスクリプトで順序を設定している。

https://github.com/lkl/linux/blob/3023e6f25fbf6d5f95b4e7ebd011fa688434ce5f/include/asm-generic/vmlinux.lds.h#L122-L135

okuokuokuoku

無理矢理集めてみるのはどうか

↑のチェックを通すためには、

  1. dl_sched_class
  2. rt_sched_class
  3. fair_sched_class
  4. idle_sched_class

の順になっている配列を用意すれば良い。つまり前のinitと同じアプローチで、一旦別のところに配列をインスタンシエートしておいて、実行前にコピーする ...しか無いのではないだろうか。。

https://github.com/lkl/linux/blob/3023e6f25fbf6d5f95b4e7ebd011fa688434ce5f/kernel/sched/sched.h#L2221-L2234