Summary: | Auto fan speed management doesn't do anything in non critical temperature range (NVC0) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | xorg | Reporter: | Marcel Dopita <mdop> | ||||||||||
Component: | Driver/nouveau | Assignee: | Nouveau Project <nouveau> | ||||||||||
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> | ||||||||||
Severity: | enhancement | ||||||||||||
Priority: | medium | ||||||||||||
Version: | unspecified | ||||||||||||
Hardware: | x86-64 (AMD64) | ||||||||||||
OS: | All | ||||||||||||
Whiteboard: | |||||||||||||
i915 platform: | i915 features: | ||||||||||||
Attachments: |
|
Description
Marcel Dopita
2014-04-30 14:45:19 UTC
Hi Marcel, Which version of the kernel are you using? I'm using Arch Linux so I'm on the latest stable: 3.14.2 (3.14.2-1-ARCH). (In reply to comment #2) > I'm using Arch Linux so I'm on the latest stable: 3.14.2 (3.14.2-1-ARCH). Hmm, OK. Can you confirm manual fan management works as expected? I have just tried on my nvc4 and automatic fan management brings back my fan speed to 40% from the 100% set manually. As for your question about fan management being done by the hw or software, it is always scaled in software (either in an RTOS running in the card or in the kernel driver). In the fermi family, the first chipsets were actually using a dedicated hardware chip for fan management (ADT7473) but your card is not one of them. So, in our case, we run the code in the linux kernel but it will be moved to the RTOS when I'm done pushing my patches to fix timers and when I take the time to write the code for fan management. Yes, manual control works and fan speed does change accordingly. (In reply to comment #4) > Yes, manual control works and fan speed does change accordingly. Can you load nouveau with the following parameter and send us the kernel logs? debug="PTHERM=debug" Created attachment 98820 [details]
dmesg with PTHERM=debug
Boot with debug parameter, after which I tried case 1b) (switching to manual mode, changing pwm1 to 100 and switching back to automatic).
Thanks Marcel. Can I ask you for your vbios? http://nouveau.freedesktop.org/wiki/DumpingVideoBios/ I already attached my bios to bug 78106 if that's ok. (In reply to comment #8) > I already attached my bios to bug 78106 if that's ok. Great, thanks, I'll have a look at both bugs tomorrow :) (In reply to comment #9) > (In reply to comment #8) > > I already attached my bios to bug 78106 if that's ok. > > Great, thanks, I'll have a look at both bugs tomorrow :) I can't reproduce the bug, but I'll send you a patch for us to get more visibility on what's going wrong. Sorry for being so slow :s Thanks for taking a look. I still have older card (GTX 260) so I can try that (other disto too?) and maybe other cards as well. Can you confirm that it actually resets for you fan rpm to pwm 55 (or any other low/default value) once auto mode is enabled and the previous state was different/higher (say pwm 100)? (In reply to comment #11) > Thanks for taking a look. I still have older card (GTX 260) so I can try > that (other disto too?) and maybe other cards as well. Well, you can try to check if they work but the point remains, your current card doesn't work and it needs to be fixed. > Can you confirm that it actually resets for you fan rpm to pwm 55 (or any > other low/default value) once auto mode is enabled and the previous state > was different/higher (say pwm 100)? Yes, I confirm this. We'll check why it doesn't work on your card and fix it! Seems that my old card - GTX 260 doesn't support manual mode nor does it report any temperature/fan speed. [ 0.491166] nouveau [ PTHERM][0000:01:00.0] FAN control: none / external [ 0.491175] nouveau [ PTHERM][0000:01:00.0] fan management: automatic [ 0.491179] nouveau [ PTHERM][0000:01:00.0] internal sensor: yes (In reply to comment #13) > Seems that my old card - GTX 260 doesn't support manual mode nor does it > report any temperature/fan speed. > > [ 0.491166] nouveau [ PTHERM][0000:01:00.0] FAN control: none / external > [ 0.491175] nouveau [ PTHERM][0000:01:00.0] fan management: automatic > [ 0.491179] nouveau [ PTHERM][0000:01:00.0] internal sensor: yes It doesn't surprise me. However, it should find an external temperature sensor and fan management chip (the ADT7473), can you confirm that or paste your logs here? I put logs into separate bug 79204 not to clutter this not related issue. (In reply to comment #15) > I put logs into separate bug 79204 not to clutter this not related issue. Perfect! Created attachment 99775 [details] [review] drm/nouveau/therm/fan: add debug information in fan_update() Please add this patch and send me the dmesg output (add the debug info for ptherm). Created attachment 99782 [details]
dmesg test after patch
I had to modify the patch a bit as in my source there were goto's instead of returns (I'm not sure what's newer, I used the source in Arch Build System). However it applied correctly as I checked.
Created attachment 99790 [details] [review] Please patch -p1 < additional_debug.patch Hmm, seems like the problem is not where I thought it was. Let's see what's the output with this patch applied! (In reply to comment #19) > Hmm, seems like the problem is not where I thought it was. Let's see what's > the output with this patch applied! I cannot compile because of following error: In file included from drivers/gpu/drm/nouveau/core/include/core/object.h:5:0, from drivers/gpu/drm/nouveau/core/subdev/therm/base.c:25: drivers/gpu/drm/nouveau/core/subdev/therm/base.c: In function ‘nouveau_therm_update’: drivers/gpu/drm/nouveau/core/subdev/therm/base.c:136:25: error: ‘struct nvbios_therm_fan’ has no member named ‘fan_mode’ duty, priv->fan->bios.fan_mode); ^ drivers/gpu/drm/nouveau/core/include/core/printk.h:14:45: note: in definition of macro ‘nv_printk’ nv_printk_(nv_object(o), NV_DBG_##l, f, ##a); \ ^ drivers/gpu/drm/nouveau/core/subdev/therm/base.c:132:2: note: in expansion of macro ‘nv_debug’ nv_debug(therm, "nouveau_therm_update; mode = %d, poll = %d, " ^ CC [M] drivers/infiniband/ulp/ipoib/ipoib_cm.o CC [M] drivers/infiniband/hw/qib/qib_ud.o scripts/Makefile.build:308: recipe for target 'drivers/gpu/drm/nouveau/core/subdev/therm/base.o' failed make[4]: *** [drivers/gpu/drm/nouveau/core/subdev/therm/base.o] Error 1 scripts/Makefile.build:455: recipe for target 'drivers/gpu/drm/nouveau' failed make[3]: *** [drivers/gpu/drm/nouveau] Error 2 scripts/Makefile.build:455: recipe for target 'drivers/gpu/drm' failed make[2]: *** [drivers/gpu/drm] Error 2 scripts/Makefile.build:455: recipe for target 'drivers/gpu' failed make[1]: *** [drivers/gpu] Error 2 Could you try using a 3.15-rcX kernel instead of a 3.14? (In reply to comment #21) > Could you try using a 3.15-rcX kernel instead of a 3.14? It works correctly under 3.15-rc7 (fan starts at lowest pwm1 value and re-sets after re-enabling auto mode) so I guess that it resolves this issue. (In reply to comment #22) > (In reply to comment #21) > > Could you try using a 3.15-rcX kernel instead of a 3.14? > > It works correctly under 3.15-rc7 (fan starts at lowest pwm1 value and > re-sets after re-enabling auto mode) so I guess that it resolves this issue. Most likely fixed with the following commit dcd9262b3baf881285e9e0fd5459d54723cc992e Author: Ben Skeggs <bskeggs@redhat.com> Date: Mon Mar 24 13:34:47 2014 +1000 drm/nouveau/therm: check for sensor presence with requested mode, not current perhaps we can forward it to linus-stable ? (In reply to comment #22) > (In reply to comment #21) > > Could you try using a 3.15-rcX kernel instead of a 3.14? > > It works correctly under 3.15-rc7 (fan starts at lowest pwm1 value and > re-sets after re-enabling auto mode) so I guess that it resolves this issue. I'm glad it works! That means we fixed all the bugs you reported (with the exception of the i2c issue that still needs to be pulled by Ben before I can close it)? If so, I would like to thank you again for being an exemplary bug reporter! Sorry for being slow to answer to your bug reports though... Should we close this bug now? Yep, switch it to appropriate state, please (I'm not sure if resolved is right as it already was fixed in rc). I will recheck it once stable is out. Thanks Martin Closing this bug as fixed then! |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.