Bug 22756

Summary: nouveau_fence.c kernel BUG and recursive faults
Product: xorg Reporter: Pekka Paalanen <ppaalanen>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg log
none
kernel log
none
kernel log none

Description Pekka Paalanen 2009-07-13 14:27:32 UTC
Created attachment 27647 [details]
Xorg log

Nouveau, KMS enabled and working fine, NV28 card.

DRM modules from nouveau/linux-2.6 git, v2.6.31-rc2-65-g7525cc6, branch master-compat, commit 7525cc6ddc45772f78aa40fe0a767f512f2ae1ed "Clarify nouveau/DEPENDS file.". This branch is up-to-date with master branch commit "drm/nouveau: allow celcius on nv20". The host kernel is 2.6.28-gentoo-r5.

When trying to start X, screen blinks, goes black, kernel hits BUGs, but the machine does not hang. SysRq can unlock the keyboard, but I do not get the console back, screen stays black. The kernel recommends a reboot after the recursive fault.

Attaching X.org log (nothing really interesting), and the kernel log with drm debug=1, except all debug messages starting in nouveau_hw.h disabled (they overflow the kernel message buffer and I hear they make I2C/DDC fail).

I'm guessing a way to reproduce this would be to remove e.g. NVxxTCL object from the list of allowed grobjs, and then starting X. Missing NV11TCL was how I first hit this kind of bug, but adding that did not fix everything. Probably something wrong in the nouveau DRM error paths.
Comment 1 Pekka Paalanen 2009-07-13 14:28:57 UTC
Created attachment 27648 [details]
kernel log
Comment 2 David 2009-07-16 04:09:17 UTC
Created attachment 27759 [details]
kernel log

	
The same happens with NV18.

Removing the patch:

drm/nouveau: protect fence pending list with Spinlock
commit: ed6cc42c377ed125e6b95e0808883a8a47f137c2

this works.
Comment 3 David 2009-07-17 03:08:38 UTC
It already works well, I think it's because:

drm/nouveau: fix BUG_ON() on UP systems, spin_is_locked() always returns 0
commit: 	f248e95a848d3e70be395862fdf512ffdfcecd51

thanks 
Comment 4 Pekka Paalanen 2009-07-19 08:58:44 UTC
(In reply to comment #3)
> It already works well, I think it's because:
> 
> drm/nouveau: fix BUG_ON() on UP systems, spin_is_locked() always returns 0
> commit:         f248e95a848d3e70be395862fdf512ffdfcecd51
> 
> thanks 
> 

Yup, confirmed here, too. Latest DRM works just fine.

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.