[Nouveau] Progress on nv46 vblank bug

Ilia Mirkin imirkin at alum.mit.edu
Tue Jun 16 07:02:53 PDT 2015

On Tue, Jun 16, 2015 at 5:34 AM, Hans de Goede <hdegoede at redhat.com> wrote:
> So any hints how to mvoe forward with this are appreciated.

I can only say what I would do... forget about trying to quantify
which cases work and which don't, just take the case that you can
reliably reproduce the problem with. Start up a second xterm (or ssh
in, that might be simpler), and start poking at stuff with
nvapeek/nvapoke. You can look in the driver for what it does when
enabling/disabling vblanks, and you can verify the values of various
registers to see if they're what you expect or not. My bet is the the
vblanks are somehow masked off. The dispnv04 code is pretty
convoluted, and probably an odd call sequence causes it to mess things

Also adding a drm.debug=0xf and comparing the successful and failure
cases may prove interesting. [and nouveau.debug=debug for good measure
as well, can't hurt]

> Possibly related, likely unrelated during nouveau module (re) load I get
> these 2 errors:
> [  240.837471] nouveau E[    PBUS][0000:01:00.0] MMIO write of 0x00000000
> FAULT at 0x6833c8
> [  240.837945] nouveau E[    PBUS][0000:01:00.0] MMIO write of 0x4f4f5c4e
> FAULT at 0x6833c8
> Where by the addresses listed as being written to (0x00000000 and
> 0x4f4f5c4e) are different
> each module load, so they seem to be taken from uninitialized memory.

How different? This example appears to decode to:

$ ~/src/envytools/rnn/lookup -a 46 6833c8

Which is definitely video-related. Perhaps it's something executed by
a VBIOS script? (Or wait, you were thinking that 0x4f4f5c4e is the
address? no, that is the value being written. And it occurs to me that
that is 'N\OO' in fourcc. Probably irrelevant.) You may find 'nvbios'
a useful tool for decoding the bios scripts. Also the 3c8 is
suspiciously similar to the VGA I/O 0x3c4 (?) register? Probably

Good luck,


More information about the Nouveau mailing list