22.03.2022 18.22 Kari Argillander (kari.argillander@xxxxxxxxx) wrote: > > 22.03.2022 17.37 Randy Dunlap (rdunlap@xxxxxxxxxxxxx) wrote: > > > > Hi Kari, > > > > On 3/22/22 00:59, Kari Argillander wrote: > > > 15.3.2022 12.35 Ingo Molnar (mingo@xxxxxxxxxx) wrote: > > >> > > >> This is -v3 of the "Fast Kernel Headers" tree, which is an ongoing rework > > >> of the Linux kernel's header hierarchy & header dependencies, with the dual > > >> goals of: > > >> > > >> - speeding up the kernel build (both absolute and incremental build times) > > >> > > >> - decoupling subsystem type & API definitions from each other > > >> > > >> The fast-headers tree consists of over 25 sub-trees internally, spanning > > >> over 2,300 commits, which can be found at: > > >> > > >> git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git master > > > > > > I have had problems to build master branch (defconfig) with gcc9 > > > gcc (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0 > > > > > > I did also test v2 and problems where there too. I have no problem with gcc10 or > > > Clang11. Error I get is: > > > > > > In file included from ./include/linux/rcuwait_api.h:7, > > > from ./include/linux/rcuwait.h:6, > > > from ./include/linux/irq_work.h:7, > > > from ./include/linux/perf_event_types.h:44, > > > from ./include/linux/perf_event_api.h:17, > > > from arch/x86/kernel/kprobes/opt.c:8: > > > ./include/linux/rcuwait_api.h: In function ‘rcuwait_active’: > > > ./include/linux/rcupdate.h:328:9: error: dereferencing pointer to > > > incomplete type ‘struct task_struct’ > > > 328 | typeof(*p) *local = (typeof(*p) *__force)READ_ONCE(p); \ > > > | ^ > > > ./include/linux/rcupdate.h:439:31: note: in expansion of macro > > > ‘__rcu_access_pointer’ > > > 439 | #define rcu_access_pointer(p) __rcu_access_pointer((p), > > > __UNIQUE_ID(rcu), __rcu) > > > | ^~~~~~~~~~~~~~~~~~~~ > > > ./include/linux/rcuwait_api.h:15:11: note: in expansion of macro > > > ‘rcu_access_pointer’ > > > 15 | return !!rcu_access_pointer(w->task); > > > > > > Argillander > > > > You could try the patch here: > > https://lore.kernel.org/all/917e9ce0-c8cf-61b2-d1ba-ebf25bbd979d@xxxxxxxxxxxxx/ > > I have to edit it to <linux/cgroup_types.h> as there is no <linux/cgroup-defs.h> > with fast headers. I also tried a couple other things but it didn't > seem to make a > difference. > > > although the build error that it fixes doesn't look exactly the same > > as yours. > > Quite close still. Maybe I should try to bisect this and I will also > see how bisectable > this branch is. Ok. I have now bisect first bad to this commit. c4ad6fcb67c4 ("sched/headers: Reorganize, clean up and optimize kernel/sched/fair.c dependencies") Note that this has been also bisect by others. With this I get little bit different error: In file included from ./arch/x86/include/generated/asm/rwonce.h:1, from ./include/linux/compiler.h:255, from ./include/linux/export.h:43, from ./include/linux/linkage.h:7, from ./include/linux/kernel.h:17, from ./include/linux/cpumask.h:10, from ./include/linux/energy_model.h:4, from kernel/sched/fair.c:23: ./include/linux/psi.h: In function ‘cgroup_move_task’: ./include/linux/rcupdate.h:414:36: error: dereferencing pointer to incomplete type ‘struct css_set’ 414 | #define RCU_INITIALIZER(v) (typeof(*(v)) __force __rcu *)(v) | ^~~~ Which is actually the same error that is in Randy's message. Patch of Randy works on top of this commit. But I cannot get this patch to work with HEAD, but probably I'm just missing something obvious. Still nice to see that probably a solution is near. > > >> There's various changes in -v3, and it's now ported to the latest kernel > > >> (v5.17-rc8). > > >> > > >> Diffstat difference: > > >> > > >> -v2: 25332 files changed, 178498 insertions(+), 74790 deletions(-) > > >> -v3: 25513 files changed, 180947 insertions(+), 74572 deletions(-) > > > > > > -- > > ~Randy