[Nouveau] Progress on nv46 vblank bug

Hans de Goede hdegoede at redhat.com
Tue Jun 16 02:34:20 PDT 2015


Hi All,

So I've been working~w banging my head against the nv46 vblank bug
again and I've been finding out some interesting things.

This is all using the latest kernel + ddx + mesa code.

All of this was tested with *cold* (power removed from wall outlet
for 20 seconds) boots in between the scenarios because this is
really weird, all boots where into text mode.

Scenario 1:
a) startx /usr/bin/glxgears -info
  glxgears works, is using the nouveau mesa driver and is synced at
  60 fps.
b) startx /usr/bin/xterm -title foo
  And then in the xterm:
  metacity&
  glxgears -info
  glxgears works, is using the nouveau mesa driver and is synced at
  60 fps.

Scenario 2:
a) startx /usr/bin/xterm -title foo
  And then in the xterm:
  metacity&
  glxgears -info
  glxgears does not work /proc/interrupts shows the interrupt for
   nvkm is not firing.
b) startx /usr/bin/glxgears -info
  glxgears does not work /proc/interrupts shows the interrupt for
   nvkm is not firing.

Weird huh, but it gets even weirder, if after scenario 2 I reload
the nouveau kernel module, using the exact same module as loaded
during boot, then I can run scenario 1 and it works the same as
after a cold boot (iow things work as they should).

Ok, so reloading the module sets things back to a pristine state,
well not quite. Because after a module reload scenario 2 also
works, where as after a cold boot scenario 2 does not work ...

Also once things are in a working state I can pretty much do
whatever I want and they stay working...

My theory so far is that plymouth does something which causes
problems when followed by starting X + xterm + metacity, where as
firing X + glxgears directly after boot undoes the something
plymouth has done, and from there on everything is good.

So any hints how to mvoe forward with this are appreciated.

Regards,

Hans

p.s.

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.

Hints on how to debug this are welcome too.



More information about the Nouveau mailing list