From: Jani Nikula <jani.nikula@linux.intel.com>
To: Paulo Zanoni <przanoni@gmail.com>, Ben Widawsky <ben@bwidawsk.net>
Cc: Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
Paulo Zanoni <paulo.r.zanoni@intel.com>
Subject: Re: [PATCH igt] module_reload: remove snd_hda_intel
Date: Wed, 23 Oct 2013 21:42:06 +0300 [thread overview]
Message-ID: <87fvrrbzi9.fsf@intel.com> (raw)
In-Reply-To: <CA+gsUGSwui1pMfHDCzfVXexbLVf+ZYbHA4D5Sf_j6hoSk2ftGw@mail.gmail.com>
On Wed, 23 Oct 2013, Paulo Zanoni <przanoni@gmail.com> wrote:
> 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...
This is because snd_hda_intel does not depend on i915, to make it
possible to use snd_hda_intel without i915. Which makes sense. Instead,
it uses symbol_request() to be able to call a couple of i915 functions
when available.
I don't know if there's a way to check this runtime dependency from
userspace. But obviously you can't remove i915 while snd_hda_intel holds
function pointers to i915. (In fact, intel_ips is the same.)
BR,
Jani.
--
Jani Nikula, Intel Open Source Technology Center
next prev parent reply other threads:[~2013-10-23 18:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-21 13:56 [PATCH igt] module_reload: remove snd_hda_intel Paulo Zanoni
2013-10-23 5:19 ` Ben Widawsky
2013-10-23 16:57 ` Paulo Zanoni
2013-10-23 18:42 ` Jani Nikula [this message]
2013-10-24 22:41 ` Ben Widawsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fvrrbzi9.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=ben@bwidawsk.net \
--cc=intel-gfx@lists.freedesktop.org \
--cc=paulo.r.zanoni@intel.com \
--cc=przanoni@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.