[PATCH i-g-t 0/3] lib/kunit: Support writable filter* parameters of kunit module
Janusz Krzysztofik
janusz.krzysztofik at linux.intel.com
Fri Jan 26 21:05:25 UTC 2024
On Friday, 26 January 2024 17:31:53 CET Janusz Krzysztofik wrote:
> On Friday, 26 January 2024 15:46:54 CET Lucas De Marchi wrote:
> > On Thu, Jan 25, 2024 at 11:25:55AM -0600, Lucas De Marchi wrote:
> > >On Thu, Jan 25, 2024 at 05:52:09PM +0100, Janusz Krzysztofik wrote:
> > >>Instead of wasting resources on reloading the base Kunit module each time
> > >>a different set of filter parameters is needed, try to write the required
> > >>values to sysfs representation of those parameters. If that fails (e.g.
> > >>on older LTS kernels with read-only filter parameters), fall back to
> > >
> > >we can't really execute anything on LTS kernel. I don't think think it's
> > >worth keeping the multiple fallbacks we have now.
> > >q
> > >I think trying to maintain compat is good, but I'm not sure it makes
> > >sense for these tightly coupled tests with the kernel.
> >
> > I gave it a try and it doesn't really work for me. It seems that after
> > you list the tests, the filter_action remains on skip, so the tests just
> > skips.
> >
> > $ sudo ./build/tests/xe_live_ktest --r dmabuf
> > ...
> > Subtest dmabuf: SKIP (0.078s)
> > $ sudo grep . /sys/module/kunit/parameters/*
> > /sys/module/kunit/parameters/action:(null)
> > /sys/module/kunit/parameters/filter:module=none
> > /sys/module/kunit/parameters/filter_action:skip
> > /sys/module/kunit/parameters/filter_glob:*
> > /sys/module/kunit/parameters/stats_enabled:1
> >
> > This works for me (with my additional patch to rename the module):
> >
> > # # list tests
> > # modprobe xe_live_test
> > # echo -n 'skip' > /sys/module/kunit/parameters/filter_action
> > # echo -n '*' > /sys/module/kunit/parameters/filter_glob
> > # modprobe xe_live_test
> >
> > # # run just xe_dma_buf
> > # modprobe -r xe_live_test
> > # echo -ne '0x00' > /sys/module/kunit/parameters/filter_action
> > # echo -n 'xe_dma_buf' > /sys/module/kunit/parameters/filter_glob
> > # modprobe xe_live_test
> >
> > I think the main issue is that kunit have some different code paths for
> > not param == NULL and also that writting an empty string is not really
> > working as it doesn't issue a write() syscall. If you force a \0 and use
> > len + 1, then I think it might work, but I didn't test it completely.
> > I may have to enhance the patch on the kernel side to handle that more
> > effectively.
>
> OK, if you are going to enhance the kernel side then I'll hold on for now and
> get back to it when we can call the ABI stable.
Or I can propose a workaround that sets some non-default values of filter
parameters that effectively work the same way as if default NULLs were
restored, which now seems impossible to be done via sysfs. Example:
List mode:
- filter: "module=none" (no module matches the filter),
- filter_action: "skip" (always, since all modules are filtered out),
- filter_glob: "*" (equivalent of default NULL).
Execute mode:
- filter: "module!=none" (any module matches, equivalent of default NULL),
- filter_action: not used (no modules are filtered out),
- filter_glob: application decides.
Thanks,
Janusz
>
> Thanks,
> Janusz
>
> >
> > Lucas De Marchi
> >
>
>
>
>
>
More information about the igt-dev
mailing list