Subject: Re: Module loading problem since 5.3

From: Luis Chamberlain <[email-masked]>
Date: Mon, 14 Oct 2019 10:32:45 +0000

On Mon, Oct 14, 2019 at 12:01:44PM +0200, Jessica Yu wrote:
> +++ Heiner Kallweit [11/10/19 21:26 +0200]:
> > On 10.10.2019 19:15, Luis Chamberlain wrote:
> > > 
> > > 
> > > On Thu, Oct 10, 2019, 6:50 PM Heiner Kallweit <[email-masked] <mailto:[email-masked]>> wrote:
> > > 
> > >        MODULE_SOFTDEP("pre: realtek")
> > > 
> > >     Are you aware of any current issues with module loading
> > >     that could cause this problem?
> > > 
> > > 
> > > Nope. But then again I was not aware of MODULE_SOFTDEP(). I'd encourage an extension to lib/kmod.c or something similar which stress tests this. One way that comes to mind to test this is to allow a new tests case which loads two drives which co depend on each other using this macro. That'll surely blow things up fast. That is, the current kmod tests uses request_module() or get_fs_type(), you'd want a new test case with this added using then two new dummy test drivers with the macro dependency.
> > > 
> > > If you want to resolve this using a more tested path, you could have request_module() be used as that is currently tested. Perhaps a test patch for that can rule out if it's the macro magic which is the issue.
> > > 
> > >   Luis
> > > 
> > Maybe issue is related to a bug in introduction of symbol namespaces, see here:
> > https://lkml.org/lkml/2019/10/11/659
> 
> If you're running into depmod and module loading issues with kernels >=5.3-rc1,
> it's likely due to the namespaces patchset and we're working on
> getting all the kinks fixed. Could you please ask the bug reporter to
> try the latest -rc kernel with these set of fixes applied on top?
> 
>   https://lore.kernel.org/linux-modules/[email-masked]/
> 
> They fix a known depmod issue caused by our __ksymtab naming scheme,
> which is being reverted in favor of extracting the namespace from
> __kstrtabns and __ksymtab_strings. These fixes will be in by -rc4.

Jessica, thanks! Do we have a test case to catch this proactively in
the future? If not can one be written?

  Luis