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. > > 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.