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