Hi, Willy
Hello Paul,
On Sun, Jun 04, 2023 at 03:57:54PM -0700, Paul E. McKenney wrote:
On Sun, Jun 04, 2023 at 03:20:11PM +0200, Willy Tarreau wrote:
Hello Paul,
Thomas and Zhangjin have provided significant nolibc cleanups, and fixes, as well as preparation work to later support riscv32.
(...)
Given that the testing converges by the end of this week, I can't see any reason why these cannot make v6.5. (There were some kernel test robot complaints as well, valid or not I am not sure.)
After Thomas' and Zhangjin's reviews and checks, I could run a mostly complete check:
- arm64, i386, x86_64 show 100% success
- arm, mips: 100% success, stackprotector skipped
- s390x, riscv64: run-user OK, kernel build fails (see below)
- loongarch: build OK, just not executed (need to upgrade my qemu and I hate doing it late when some tests results are needed)
Regarding the build failure affecting s390x and riscv64, it's a regular kernel resulting from "make defconfig". For both archs, I'm getting this failure:
In file included from kernel/rcu/update.c:649: kernel/rcu/tasks.h: In function 'get_rcu_tasks_gp_kthread': CC fs/kernfs/dir.o CC security/bpf/hooks.o kernel/rcu/tasks.h:1939:16: error: 'rcu_tasks' undeclared (first use in this function) 1939 | return rcu_tasks.kthread_ptr; | ^~~~~~~~~ kernel/rcu/tasks.h:1939:16: note: each undeclared identifier is reported only once for each function it appears in kernel/rcu/tasks.h:1940:1: error: control reaches end of non-void function [-Werror=return-type] 1940 | } | ^ cc1: some warnings being treated as errors
I rebased the branch on top of 6.4-rc5 and got the same. I'm building with gcc-11.3.0 from kernel.org. I'm not sure whether this comes from my build environment or recent changes to the kernel, but I'm sure I haven't seen that error during 6.3-rc cycle. However, given that Zhangjin seems to have successfully built it for riscv, there might be something odd on my side.
Sorry, The reason is that to speed up the kernel build+nolibc tests, a local small config was customized for the first report, it may not trigger the above issue, in the later report about the v4 rv32 compile support [1], I did test 'run' target with the default defconfig and reported the same failure as bove, this is the note I pasted there:
--- Did compile test for aarch64, rv32 and rv64, include run-user and run.
Note, this is required with the default config from the 20230606-nolibc-rv32+stkp7a branch of [5]:
diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h index ce02bb09651b..72bd8fe0cad6 100644 --- a/kernel/rcu/tasks.h +++ b/kernel/rcu/tasks.h @@ -1934,11 +1934,13 @@ void show_rcu_tasks_gp_kthreads(void) } #endif /* #ifndef CONFIG_TINY_RCU */
+#ifdef CONFIG_TASKS_RCU struct task_struct *get_rcu_tasks_gp_kthread(void) { return rcu_tasks.kthread_ptr; } EXPORT_SYMBOL_GPL(get_rcu_tasks_gp_kthread); +#endif
#ifdef CONFIG_PROVE_RCU struct rcu_tasks_test_desc { ---
I have seen Paul have known the cause of the above issue in your later discussion and you found a better solution to avoid such failures, congrats!
[1]: https://lore.kernel.org/linux-riscv/cover.1686128703.git.falcon@tinylab.org/...
Best regards, Zhangjin
Given that this build issue is not dependent on the selftest, I'm fine with the branch getting merged as-is, and can provide feedback on this build error if needed:
git://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git 20230606-nolibc-rv32+stkp7a
Just let me know if you prefer that I resend the whole series or need more info etc, as usual.
Thank you! Willy