On Thu, Jul 18, 2024 at 09:25:27AM -0700, Nathan Chancellor wrote:
On Fri, Jul 12, 2024 at 05:03:33PM +0200, Peter Zijlstra wrote:
On Fri, Jul 12, 2024 at 04:11:54PM +0200, Arnd Bergmann wrote:
On Fri, Jul 12, 2024, at 15:24, Peter Zijlstra wrote:
On Fri, Jul 12, 2024 at 02:28:38PM +0200, Arnd Bergmann wrote:
On Fri, Jul 12, 2024, at 14:13, Naresh Kamboju wrote:
that we may have to always enable IRQ_WORK even on non-SMP kernels now. In practice it is already enabled in most configurations for one reason or another, the the cost is likely very small.
Otherwise checking for CONFIG_HAVE_NMI in the new code might work.
ARM seems to have HAVE_NMI while also being one of the architectures that is now failing.
Right, in this case we would also need
--- a/arch/Kconfig +++ b/arch/Kconfig @@ -236,6 +236,7 @@ config HAVE_FUNCTION_ERROR_INJECTION config HAVE_NMI bool
select IRQ_WORK
config HAVE_FUNCTION_DESCRIPTORS bool
Yeah, that works for me I suppose.
Was there any conclusion to this thread that I missed? The configurations Naresh mentioned in the original post are now broken in mainline because the pull request was sent without any solution to this issue.
FWIW, that diff doesn't fix ARCH=powerpc tinyconfig, as it does not have CONFIG_HAVE_NMI. kernel/task_work.c is unconditionally built so shouldn't IRQ_WORK now be 'default y' (or just eliminated altogether)?
Actually, many tinyconfig builds are now broken.
Example from alpha:
alpha-linux-ld: kernel/task_work.o: in function `task_work_add': (.text+0x1b4): undefined reference to `irq_work_queue' alpha-linux-ld: (.text+0x1bc): undefined reference to `irq_work_queue'
alpha does not set "HAVE_NMI". AFAICS task_work.c is always built, and it now calls irq_work_queue() unconditionally, so unless that is changed IRQ_WORK is now mandatory and must not just depend on HAVE_NMI or anything else.
Guenter