[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250716132337-ee01c8f1-0942-4d45-a906-67d4884a765e@linutronix.de>
Date: Wed, 16 Jul 2025 13:33:05 +0200
From: Thomas Weißschuh <thomas.weissschuh@...utronix.de>
To: Christoph Hellwig <hch@...radead.org>
Cc: Al Viro <viro@...iv.linux.org.uk>,
Luis Chamberlain <mcgrof@...nel.org>, Kees Cook <kees@...nel.org>,
Christian Brauner <brauner@...nel.org>, Jan Kara <jack@...e.cz>, linux-mm@...ck.org,
linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 06/15] fs,fork,exit: export symbols necessary for
KUnit UAPI support
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.
This also makes a small always-builtin component annoying as it will need
to call into KUnit through indirect calls.
But again:
I see that it makes sense to restrict random out-of-tree modules
from accessing kernel internals. But here the symbols are only exported for
one single, in-tree user. What is the advantage of forcing this user to be
non-modular to get access?
> 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.
Thomas
Powered by blists - more mailing lists