Bug 50375

Summary: [NV1A] KMS/fbcon accel failing after scrolling/tty switch
Product: xorg Reporter: Bruno <bonbons>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: TomWij
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
kernel log
none
patch to treat nv1a as pre-nv17
none
add nv11 card type
none
fix nv1a chipset checks none

Description Bruno 2012-05-26 09:55:22 UTC
Created attachment 62127 [details]
kernel log

Shortly after loading nouveau kernel module it floods kernel log with messages and switches to software fbcon. Somewhere in the flood it reports lockup and the switch.
The easies trigger is switching vts a few times or scrolling text, e.g. with less.

System is NV11 (nforce IGP) running 3.4.0 kernel.

Extra system information is available at attachment #33464 [details].
Comment 1 Ilia Mirkin 2013-08-27 20:09:49 UTC
Do I assume correctly that this still happens with the latest kernel? If so, please try the following things (individually) and let me know if there's any improvement:

nouveau.vram_pushbuf=1
nouveau.agpmode=0
Comment 2 Ilia Mirkin 2013-08-27 20:11:13 UTC
Oh, also looking at your log, it looks like you actually have the NV1A, not NV11.
Comment 3 Bruno 2013-08-27 20:27:58 UTC
(In reply to comment #1)
> Do I assume correctly that this still happens with the latest kernel?

Impossible to tell with current kernels (3.8.2, 3.10.7, 3.11-rc6) as VGA output is not being lit up properly by nouveau (monitor says "no signal").

See also bug #26534, comments 18 and 20.
Comment 4 Ilia Mirkin 2013-08-28 03:22:38 UTC
Created attachment 84758 [details] [review]
patch to treat nv1a as pre-nv17

Generationally, NV1A is pre-NV17. However in a bunch of places in the nouveau code, this wasn't recognized. I believe this patch should help, at least with something. Mind trying it out? Should apply on top of a git-ish kernel (but probably doesn't really matter).
Comment 5 Bruno 2013-08-28 17:31:09 UTC
(In reply to comment #4)
> Created attachment 84758 [details] [review] [review]
> patch to treat nv1a as pre-nv17
> 
> Generationally, NV1A is pre-NV17. However in a bunch of places in the
> nouveau code, this wasn't recognized. I believe this patch should help, at
> least with something. Mind trying it out? Should apply on top of a git-ish
> kernel (but probably doesn't really matter).

This patch gets the signal to the monitor.

Tested-by: Bruno Prémont <bonbons@linux-vserver.org>
Comment 6 Ilia Mirkin 2013-08-28 17:43:59 UTC
Could you also retest your various bugs with that patch applied to see if they've resolved themselves? (Including this one.)
Comment 7 Ilia Mirkin 2013-09-05 01:40:10 UTC
Created attachment 85214 [details] [review]
add nv11 card type
Comment 8 Ilia Mirkin 2013-09-05 01:41:07 UTC
Created attachment 85215 [details] [review]
fix nv1a chipset checks

can you test with the two patches i just uploaded instead?
Comment 9 Bruno 2013-09-14 14:48:12 UTC
(In reply to comment #8)
> Created attachment 85215 [details] [review] [review]
> fix nv1a chipset checks
> 
> can you test with the two patches i just uploaded instead?

These two patches get the output reaching monitor as well as the previous patch.


Note: with nouveau loaded (3.11-rc7, previous patch applied) I had memory (SLAB) corruption as if someone did reuse stale pointers or write beyond allocated memory. I have no idea on the responsible party though they don't seem to happen with VGA console (nouveau not loaded).

The scrolling bug seems fixed though.
Comment 10 Ilia Mirkin 2013-09-21 22:48:28 UTC
These patches (well, fixed up versions that actually work for nv11+ correctly) are now in nouveau/master. As for the memory corruption issue, try using SLUB with slub_debug=FZPU, that might help figure out what's going wrong. If you find anything concrete, file a new issue.

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.