Re: [PATCH igt] module_reload: remove snd_hda_intel

Paulo Zanoni
2013-10-23T16:57:57Z

2013/10/23 Ben Widawsky <ben@bwidawsk.net>:
> On Mon, Oct 21, 2013 at 11:56:09AM -0200, Paulo Zanoni wrote:
>> From: Paulo Zanoni <paulo.r.zanoni@intel.com>
>>
>> The audio driver uses the power well provided by our driver, so on
>> Haswell we can't "rmmod i915" if we don't "rmmod snd_hda_intel" first.
>>
>> The problem with removing snd_hda_intel is that we also need to kill
>> its users. On the specific machine I tested, the only user seem to be
>> alsactl, but on other machines this may change. IMHO we should leave
>> the "kill user space" step to whoever is running the script, but
>> Daniel asked me to put it here so we have a better chance of Just
>> Working on QA's machines.
>>
>> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
>> ---
>> tests/module_reload | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/tests/module_reload b/tests/module_reload
>> index 3d8cb85..c1fd395 100755
>> --- a/tests/module_reload
>> +++ b/tests/module_reload
>> @@ -18,6 +18,10 @@ if ! echo 0 > /sys/class/vtconsole/vtcon1/bind ; then
>> exit 77
>> fi
>>
>> +# The sound driver uses our power well
>> +pkill alsactl
>> +rmmod snd_hda_intel &> /dev/null
>> +
>> #ignore errors in ips - gen5 only
>> rmmod intel_ips &> /dev/null
>> rmmod i915
>> @@ -38,6 +42,8 @@ fi
>> modprobe i915
>> echo 1 > /sys/class/vtconsole/vtcon1/bind
>>
>> +modprobe snd_hda_intel
>> +
>> # try to run something
>> $SOURCE_DIR/gem_exec_nop > /dev/null && echo "module successfully loaded again"
>>
>
> I don't really pretend to understand how module dependencies are
> calculated. However, I would think the dependency should be *somewhere*
> and so modprobe -r i915 should work.

It's the opposite: "modprobe -r i915" will remove drm.ko,
drm_kms_helper, i2c-algo-bit and video, but won't remove snd_hda_intel
(and if you don't remove it first, it will complain that i915.ko is
still in use).

>
> Don't read that as a nak. Rather, a wtf is with the existing stuff?

I think the dependency is magically tracked by depmod when it sees the
Audio driver uses a symbol exported by i915.ko. But a "modinfo
snd_hda_intel" doesn't show i915.ko on the "depends" section, which is
strange. I'm also not an expert on this area...

>
> --
> Ben Widawsky, Intel Open Source Technology Center

--
Paulo Zanoni