[Accel-config] Re: [PATCH] accel-config/test: load/unload uacce module at cleanup

Thomas, Ramesh <ramesh.thomas at intel.com>
Newsgroups dev.linux.lists.accel-config
Message-ID <BYAPR11MB25351718BF174C24060B326DED769@BYAPR11MB2535.namprd11.prod.outlook.com>
On Tue, Apr 06, 2021 at 08:55:43AM -0700, Dave Jiang wrote:
> 
> On 4/5/2021 5:45 PM, ramesh.thomas(a)intel.com wrote:
> > From: Ramesh Thomas <ramesh.thomas(a)intel.com>
> >
> > Cleanup unloads and reloads all idxd kernel modules. This is broken due
> > to idxd_module depending on idxd module. The order of idxd_mdev and
> > idxd_uacce modules are not fixed requiring additional checks during the
> > process.
> >
> > Signed-off-by: Tony Zhu <tony.zhu(a)intel.com>
> > Signed-off-by: Ramesh Thomas <ramesh.thomas(a)intel.com>
> 
> I would maybe add a comment explaining the weird behavior observed.

I have a new finding. Even though "modprobe -r" returns failure and
prints error message "modprobe: FATAL: Module idxd is in use.", the
module is still unloaded. It does not give that error on the second
module that is unloaded so I earlier thought it has to do with the
order. This seems to be a bug in the driver and is easily reproducible.

Since it returns failure, the test script aborts with error. I will
modify the workaround to not trap on the error and continue. That way we
don't need the second unload attempt of the same module. I will add
a comment describing this as a workaround for the above behavior. 


> 
> Reviewed-by: Dave Jiang <dave.jiang(a)intel.com>
> 
> 
> > ---
> >   test/common | 9 +++++++++
> >   1 file changed, 9 insertions(+)
> >
> > diff --git a/test/common b/test/common
> > index 4bd4ed3..e6e84dd 100644
> > --- a/test/common
> > +++ b/test/common
> > @@ -99,6 +99,14 @@ check_prereq()
> >   #
> >   _cleanup()
> >   {
> > +	lsmod | grep -q "idxd_mdev" && {
> > +		modprobe -r idxd_mdev 2>/dev/null || :
> > +		sleep 1
> > +	}
> > +	lsmod | grep -q "idxd_uacce" && {
> > +		modprobe -r idxd_uacce
> > +		sleep 1
> > +	}
> >   	lsmod | grep -q "idxd_mdev" && {
> >   		modprobe -r idxd_mdev
> >   		sleep 1
> > @@ -108,6 +116,7 @@ _cleanup()
> >   		sleep 1
> >   	}
> >   	modprobe idxd
> > +	sleep 1
> >   }
> >
> >   # json2var
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.