LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: Jiri Kosina <jikos@kernel.org>,
Dave Hansen <dave.hansen@intel.com>,
"open list:HID CORE LAYER" <linux-input@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: hid-related 5.2-rc1 boot hang
Date: Tue, 4 Jun 2019 12:50:18 +0200 [thread overview]
Message-ID: <ea7b2dee-15a6-9b52-fbff-558c36cd72df@redhat.com> (raw)
In-Reply-To: <CAO-hwJK0j8SottiqCdDseBW_vR=GjKO4YrFCtjzYeUh-eKPOpA@mail.gmail.com>
Hi,
On 04-06-19 12:08, Benjamin Tissoires wrote:
> On Tue, Jun 4, 2019 at 9:51 AM Benjamin Tissoires
> <benjamin.tissoires@redhat.com> wrote:
>>
>> On Mon, Jun 3, 2019 at 4:17 PM Hans de Goede <hdegoede@redhat.com> wrote:
>>>
>>> Hi,
>>>
>>> On 03-06-19 15:55, Benjamin Tissoires wrote:
>>>> On Mon, Jun 3, 2019 at 11:51 AM Hans de Goede <hdegoede@redhat.com> wrote:
>>>>>
>>>>> Hi Again,
>>>>>
>>>>> On 03-06-19 11:11, Hans de Goede wrote:
>>>>> <snip>
>>>>>
>>>>>>> not sure about the rest of logitech issues yet) next week.
>>>>>>
>>>>>> The main problem seems to be the request_module patches. Although I also
>>>>
>>>> Can't we use request_module_nowait() instead, and set a reasonable
>>>> timeout that we detect only once to check if userspace is compatible:
>>>>
>>>> In pseudo-code:
>>>> if (!request_module_checked) {
>>>> request_module_nowait(name);
>>>> use_request_module = wait_event_timeout(wq,
>>>> first_module_loaded, 10 seconds in jiffies);
>>>> request_module_checked = true;
>>>> } else if (use_request_module) {
>>>> request_module(name);
>>>> }
>>>
>>> Well looking at the just attached dmesg , the modprobe
>>> when triggered by udev from userspace succeeds in about
>>> 0.5 seconds, so it seems that the modprobe hangs happens
>>> when called from within the kernel rather then from within
>>> userspace.
>>>
>>> What I do not know if is the hang is inside userspace, or
>>> maybe it happens when modprobe calls back into the kernel,
>>> if the hang happens when modprobe calls back into the kernel,
>>> then other modprobes (done from udev) likely will hang too
>>> since I think only 1 modprobe can happen at a time.
>>>
>>> I really wish we knew what distinguished working systems
>>> from non working systems :|
>>>
>>> I cannot find a common denominator; other then the systems
>>> are not running Fedora. So far we've reports from both Ubuntu 16.04
>>> and Tumbleweed, so software version wise these 2 are wide apart.
>>
>> I am trying to reproduce the lock locally, and installed an opensuse
>> Tumbleweed in a VM. When forwarding a Unifying receiver to the VM, I
>> do not see the lock with either my vanilla compiled kernel and the rpm
>> found in http://download.opensuse.org/repositories/Kernel:/HEAD/standard/x86_64/
>>
>> Next step is install Tumbleweed on bare metal, but I do not see how
>> this could introduce a difference (maybe USB2 vs 3).
>
> Making progress here.
>
> The difference between Ubuntu/Tumbleweed and Fedora: usbhid is shipped
> as a module while in Fedora usbhid is included in the kernel.
>
> If I rmmod hid_* and usbhid, then modprobe usbhid, the command hangs
> for 3 minutes.
> If usbhid is already loaded, inserting a receiver is immediate
> regarding the loading of the external modules.
>
> So my assumption is that when the device gets detected at boot, usbhid
> gets loaded by the kernel event, which in turns attempts to call
> __request_module, but the modprobe can't be fulfilled because it's
> already waiting for the initial usbhid modprobe to finish.
>
> Still don't know how to solve that, but I thought I should share.
Hmm, we may be hitting the scenario described in the big comment
around line 3500 of kernel/module.c.
But I'm not sure that is what is happening here.
Maybe you can put a WARN_ON(1) in request_module and look at the
backtrace ? That may help to figure out what is going on; or
alternatively it might help to find some way to detect this and
if it happens skip the request_module...
Regards,
Hans
next prev parent reply other threads:[~2019-06-04 10:50 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-28 16:43 Dave Hansen
2019-05-28 17:14 ` Jiri Kosina
2019-05-28 17:45 ` Benjamin Tissoires
2019-05-28 18:11 ` Dave Hansen
2019-05-29 9:17 ` Hans de Goede
2019-05-30 16:56 ` Dave Hansen
2019-05-31 22:15 ` Jiri Kosina
2019-06-03 9:11 ` Hans de Goede
2019-06-03 9:32 ` Hans de Goede
2019-06-03 9:51 ` Hans de Goede
2019-06-03 13:55 ` Benjamin Tissoires
2019-06-03 14:17 ` Hans de Goede
2019-06-04 7:51 ` Benjamin Tissoires
2019-06-04 8:05 ` Hans de Goede
2019-06-04 8:36 ` Hans de Goede
2019-06-04 8:53 ` Benjamin Tissoires
2019-06-04 21:08 ` Jiri Kosina
2019-06-05 12:29 ` Benjamin Tissoires
2019-06-04 10:08 ` Benjamin Tissoires
2019-06-04 10:50 ` Hans de Goede [this message]
2019-06-04 12:25 ` Benjamin Tissoires
2019-06-04 13:12 ` Hans de Goede
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=ea7b2dee-15a6-9b52-fbff-558c36cd72df@redhat.com \
--to=hdegoede@redhat.com \
--cc=benjamin.tissoires@redhat.com \
--cc=dave.hansen@intel.com \
--cc=jikos@kernel.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--subject='Re: hid-related 5.2-rc1 boot hang' \
/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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).