Bjorn Helgaas
2021-Jan-29 21:20 UTC
[Nouveau] 5.9.11 still hanging 2mn at each boot and looping on nvidia-gpu 0000:01:00.3: PME# enabled (Quadro RTX 4000 Mobile)
On Thu, Jan 28, 2021 at 04:56:26PM -0800, Marc MERLIN wrote:> On Wed, Jan 27, 2021 at 03:33:00PM -0600, Bjorn Helgaas wrote: > > Hi Marc, I appreciate your persistence on this. I am frankly > > surprised that you've put up with this so long. > > Well, been using linux for 27 years, but also it's not like I have much > of a choice outside of switching to windows, as tempting as it's getting > sometimes ;) > > > > after boot, when it gets the right trigger (not sure which ones), it > > > loops on this evern 2 seconds, mostly forever. > > > > > > I'm not sure if it's nouveau's fault or the kernel's PCI PME's fault, or something else. > > > > IIUC there are basically two problems: > > > > 1) A 2 minute delay during boot > > Another random thought: is there any chance the boot delay could be > > related to crypto waiting for entropy? > > So, the 2mn hang went away after I added the nouveau firwmare in initrd. > The only problem is that the nouveau driver does not give a very good > clue as to what's going on and what to do. > > For comparison the intel iwlwifi driver is very clear about firmware > it's trying to load, if it can't and what exact firmware you need to > find on the internet (filename)I guess you're referring to this in iwl_request_firmware()? IWL_ERR(drv, "check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git\n"); How can we fix this in nouveau so we don't have the debug this again? I don't really know how firmware loading works, but "git grep -A5 request_firmware drivers/gpu/drm/nouveau/" shows that we generally print something when request_firmware() fails. But I didn't notice those messages in your logs, so I'm probably barking up the wrong tree.> > 2) Some sort of event every 2 seconds that kills your battery life > > Your machine doesn't sound unusual, and I haven't seen a flood of > > similar reports, so maybe there's something unusual about your config. > > But I really don't have any guesses for either one. > > Honestly, there are not too many thinpad P73 running linux out there. I > wouldn't be surprised if it's only a handful or two. > > > It sounds like v5.5 worked fine and you first noticed the slow boot > > problem in v5.8. We *could* try to bisect it, but I know that's a lot > > of work on your part. > > I've done that in the past, to be honest now that it works after I added > the firmware that nouveau started needing, and didn't need before, the > hang at boot is gone for sure. > The PCI PM wakeup issues on batteries happen sometimes still, but they > are much more rare now.So maybe the wakeups are related to having vs not having the nouveau firmware? I'm still curious about that, and it smells like a bug to me, but probably something to do with nouveau where I have no hope of debugging it.> > Grasping for any ideas for the boot delay; could you boot with > > "initcall_debug" and collect your "lsmod" output? I notice async_tx > > in some of your logs, but I have no idea what it is. It's from > > crypto, so possibly somewhat unusual? > > Is this still neeeded? I think of nouveau does a better job of helping > the user correct the issue if firmware is missing (I think intel even > gives a URL in printk), that would probably be what's needed for the > most part.Nope, don't bother with this, thanks. Bjorn
Marc MERLIN
2021-Jan-30 02:04 UTC
[Nouveau] 5.9.11 still hanging 2mn at each boot and looping on nvidia-gpu 0000:01:00.3: PME# enabled (Quadro RTX 4000 Mobile)
On Fri, Jan 29, 2021 at 03:20:32PM -0600, Bjorn Helgaas wrote:> > For comparison the intel iwlwifi driver is very clear about firmware > > it's trying to load, if it can't and what exact firmware you need to > > find on the internet (filename) > > I guess you're referring to this in iwl_request_firmware()? > > IWL_ERR(drv, "check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git\n");Yes :)> How can we fix this in nouveau so we don't have the debug this again? > I don't really know how firmware loading works, but "git grep -A5 > request_firmware drivers/gpu/drm/nouveau/" shows that we generally > print something when request_firmware() fails.Well, have a look at https://pastebin.com/dX19aCpj do you see any warning whatsoever?> But I didn't notice those messages in your logs, so I'm probably > barking up the wrong tree.you're not It seems that newer kernels are a bit better: [ 189.304662] nouveau 0000:01:00.0: pmu: firmware unavailable [ 189.312455] nouveau 0000:01:00.0: disp: destroy running... [ 189.316552] nouveau 0000:01:00.0: disp: destroy completed in 1us [ 189.320326] nouveau 0000:01:00.0: disp ctor failed, -12 [ 189.324214] nouveau: probe of 0000:01:00.0 failed with error -12 So, it probably got better, but that message got displayed after the 2mn hang that having the firmware, stops from happening. whichever developer with the right hardware can probably easily reproduce this by removing the firmware and looking at the boot messages. At the very least, it should print something more clear "driver will not function properly", and a URL to where one can get the driver, would be awesome.> So maybe the wakeups are related to having vs not having the nouveau > firmware? I'm still curious about that, and it smells like a bug to > me, but probably something to do with nouveau where I have no hope of > debugging it.Right. Honestly, given the time I've lost with this, and now that it seems gone with the firmware, I'm happy to leave well enough alone :) I'm not sure how you are involved with the driver, but are you able to help improve the dmesg output? Thanks, Marc -- "A mouse is a device used to point at the xterm you want to type in" - A.S.R. Home page: http://marc.merlins.org/ | PGP 7F55D5F27AAF9D08