Re: ndctl tests usable?

From: Michal Suchánek
Date: Wed Apr 27 2022 - 07:26:42 EST


On Tue, Apr 26, 2022 at 11:22:55AM -0700, Dan Williams wrote:
> On Tue, Apr 26, 2022 at 11:10 AM Michal Suchánek <msuchanek@xxxxxxx> wrote:
> >
> > On Tue, Apr 26, 2022 at 09:47:19AM -0700, Dan Williams wrote:
> > > On Tue, Apr 26, 2022 at 9:43 AM Michal Suchánek <msuchanek@xxxxxxx> wrote:
> > > >
> > > > On Tue, Apr 26, 2022 at 09:32:24AM -0700, Dan Williams wrote:
> > > > > On Tue, Apr 26, 2022 at 9:15 AM Michal Suchánek <msuchanek@xxxxxxx> wrote:
> > > > > >
> > > > > > On Tue, Apr 26, 2022 at 08:51:25AM -0700, Dan Williams wrote:
> > > > > > > On Tue, Apr 26, 2022 at 5:39 AM Michal Suchánek <msuchanek@xxxxxxx> wrote:
> > > > > > > >
> > ...
> > > > >
> > > > > The modinfo just tells you what modules are available, but it does not
> > > > > necessarily indicate which modules are actively loaded in the system
> > > > > which is what ndctl_test_init() validates.
> > > >
> > > > Isn't what modinfo lists also what modrobe loads?
> > >
> > > It shows what modprobe would load on the next invocation, but
> > > sometimes when nfit_test fails it's because the initramfs or something
> > > else loaded the modules without respecting the extra/ (or updates/ in
> > > your case) override modules.
> > >
> > > > There isn't any pmem so I don't see why production modules would be
> > > > loaded before the test modules are installed. Unloading the modules
> > > > first does not really make any difference.
> > >
> > > Ok, my first guess was wrong... would need more debug to see what
> > > those other skip tests are complaining about.
> >
> > There was also missing parted and hostname command.
> >
> > However, the nfit.ko is detected as production even when I remove all
> > the production modules just in case. lsmod confirms that the nvdimm
> > modules are not loaded before the test.
> >
> > Maybe something goes wrong with the test module build?
> >
> > It is very fragile and requires complete kernel source for each
> > configuration built. See below for the package
> >
> > https://build.opensuse.org/package/show/home:michals/nfit_test
> >
> > Attaching the log of test run which does not report any missing tools,
> > only complains about nfit.ko being production.
>
> Oh... something silly, ndctl_test_init() assumes that the out-of-tree
> module directory is always "/lib/modules/$(uname -r)/extra"
>
> if (!strstr(path, "/extra/")) {
> log_err(&log_ctx, "%s.ko: appears to be
> production version: %s\n",
> name, path);
> break;
> }
>
> Looks like a build configuration variable is needed there to allow for
> "updates/".

yes, I could also change the path in the package to match this
expactation. Not sure if that would break something else.

There is one last bit: the tests require at least 1GB of ram, or
specifically the default VM with 512MB is not sufficient.

With that only monitor test fails, and some BTT test is skipped because
the 5.17 kernel supposedly does not have the correct support:

[ 182s] 19/23 ndctl:ndctl / monitor.sh FAIL 6.39s exit status 1
[ 182s]
[ 182s]
[ 182s] Ok: 21
[ 182s] Expected Fail: 0
[ 182s] Fail: 1
[ 182s] Unexpected Pass: 0
[ 182s] Skipped: 1
[ 182s] Timeout: 0

Thanks

Michal