[igt-dev] [PATCH] lib/igt_kmod: Make sure the mei modules are loaded when i915 is
Kamil Konieczny
kamil.konieczny at linux.intel.com
Thu Oct 20 14:53:44 UTC 2022
Hi,
On 2022-10-19 at 13:41:08 -0700, Dixit, Ashutosh wrote:
> On Mon, 10 Oct 2022 12:01:07 -0700, Daniele Ceraolo Spurio wrote:
> >
>
> Hi Daniele,
>
> > The mei modules are required on DG2 to use the GSC child device, which
> > is in turn responsible for loading HuC. We're observing a sporadic
> > failure in CI (see ref below) where it looks like the mei modules are
> > not automatically loaded by the kernel the fist time i915 exposes the
> > child device while being loaded by IGT, but are then loaded fine when
> > i915 is reloaded by another test later on.
> >
> > To make sure that the modules get loaded, explicitly modprobe them after
> > i915 is loaded.
> >
> > References: https://gitlab.freedesktop.org/drm/intel/-/issues/7029
> > Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> > Cc: John Harrison <john.c.harrison at intel.com>
> > Cc: Alan Previn <alan.previn.teres.alexis at intel.com>
> > ---
> > lib/igt_kmod.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/lib/igt_kmod.c b/lib/igt_kmod.c
> > index bcf7dfeb..c9a9c2db 100644
> > --- a/lib/igt_kmod.c
> > +++ b/lib/igt_kmod.c
> > @@ -394,6 +394,9 @@ igt_i915_driver_load(const char *opts)
> > }
> >
> > bind_fbcon(true);
> > + igt_kmod_load("mei_gsc", NULL);
> > + igt_kmod_load("mei_hdcp", NULL);
> > + igt_kmod_load("mei_pxp", NULL);
>
> Afaiu there should be no need to do this, correct? If the device appears
> the driver should automatically load and bind to the device. So doing this
> explicity as above can hide issues in this process.
I agree with Ashutosh, we should not hide bugs in driver loading.
>
> To me the sporadic nature of this issue seems to indicate something wrong
> in the kernel rather than in IGT, which we are trying to paper over with
> this patch. Not sure.
>
> At least have we verified that doing this fix the issue, have we checked?
> Since the repro rate for GL #7029 is 76% it should be possible to verify or
> does it always pass in IGT pre-merge? At least the one run in Patchwork
> everything is passing.
>
> Also maybe we should add some debug prints to gem_huc_copy.c which checks
> whether the module is not loaded when the test fails? Or is the module
> loaded but not binding to the device?
This or separate test gem_huc_loaded ?
We can also try to print better logs in case of fail.
--
Kamil
>
> There are many "[drm] mei driver not bound, disabling HuC load" in dmesg.
>
> Or maybe instead of doing this in the lib here we do something in
> gem_huc_copy.c? Can we reload i915 in gem_huc_copy.c when starting the test
> or load these modules in gem_huc_copy.c e.g.?
>
> Also do we only need to load these modules on platforms on which they are
> needed? Otherwise we will generate unnecessary "could not insert module"
> debug messages?
>
> So mostly I am not comfortable with this patch. Can we get a second
> opinion?
>
> Thanks.
> --
> Ashutosh
>
> > igt_kmod_load("snd_hda_intel", NULL);
> >
> > return 0;
> > --
> > 2.37.3
> >
More information about the igt-dev
mailing list