Re: [PATCH v4 06/15] fs,fork,exit: export symbols necessary for KUnit UAPI support

From: Thomas Weißschuh
Date: Wed Jul 16 2025 - 08:47:45 EST


On Wed, Jul 16, 2025 at 04:36:38AM -0700, Christoph Hellwig wrote:
> On Wed, Jul 16, 2025 at 01:33:05PM +0200, Thomas Weißschuh wrote:
> > On Wed, Jul 16, 2025 at 04:11:04AM -0700, Christoph Hellwig wrote:
> > > On Wed, Jul 16, 2025 at 10:39:57AM +0200, Thomas Weißschuh wrote:
> > > > Let's take kernel_execve() as example, there is no way around using this
> > > > function in one way or another. It only has two existing callers.
> > > > init/main.c: It is completely unsuitable for this usecase.
> > > > kernel/umh.c: It is also what Al suggested and I am all for it.
> > > > Unfortunately it is missing features. Citation from my response to Al:
> > >
> > > But why does the code that calls it need to be modular? I get why
> > > the actual test cases should be modular, but the core test runner is
> > > small and needs a lot of kernel internals. Just require it to be
> > > built-in and all this mess goes away.
> >
> > KUnit UAPI calls into KUnit proper which itself is modular.
> > As such it needs to be modular, too.
>
> Not if you depend on KUNIT=y.

This is exactly what I did in the beginning. Then I got told about the distros
using KUNIT=m [0] and decided that it does make sense to support.
We'd have this discussion sooner or later. But I'm still not sure what
difference an in-tree-module-specific export should make.

> > > That being said some of this stuff, like get_fs_type / put_filesystem
> > > or replace_fd seem like the wrong level of abstractions for something
> > > running tests anyway.
> >
> > This was modelled after usermode helper and usermode driver.
> > To me it makes sense, and I don't see an obvious way to get rid of these.
> >
> > Or do you mean to introduce a new in-core helper to abstract this away?
> > Then everybody would need to pay the cost for this helper even if it is only
> > used from some modular code.
>
> I have no idea what you are doing as you only Cc'ed the exports patch
> but not the actual work to the mailing lists, so I have no way of
> helping you with the actual code. I can just tell you my gut feeling
> based on the symbols, and they are something that doesn't feel outside
> of very core code.

The actual code using these exports [1] was Cc'ed to both linux-fsdevel and
linux-mm. In addition to the cover-letter and the exports patch.
The rest of the series does not interact with the exports at all.

[0] https://lore.kernel.org/all/CABVgOSmdcOZ0+-k=SM4LibOVMKtcbF27p6N40kuDX_axTPZ=QQ@xxxxxxxxxxxxxx/
[1] https://lore.kernel.org/lkml/20250626-kunit-kselftests-v4-12-48760534fef5@xxxxxxxxxxxxx/


Thomas