Comment 30 for bug 925048

Revision history for this message
In , Ilia Mirkin (imirkin) wrote :

(In reply to comment #12)
> This bug is affecting me also, see the last duplicated bug. Any progress in
> fixing this? Maybe some help in testing (for ex.) required?

It's a bit of a mystery unfortunately. Adding to the annoyance, Ben said that it does work just fine on his NVC8, although he has the less powerful versions. Could be something with high ROP/TPC/GPC counts not being handled. (Or multiple PARTs?)

That might actually be an interesting experiment -- before loading nouveau, mask out a bunch of the units and see if it helps. If it does, find the "breaking" point.

This is the code that computes that stuff:

http://cgit.freedesktop.org/~darktama/nouveau/tree/nvkm/engine/graph/nvc0.c#n1330

 priv->rop_nr = (nv_rd32(priv, 0x409604) & 0x001f0000) >> 16;
 priv->gpc_nr = nv_rd32(priv, 0x409604) & 0x0000001f;
 for (i = 0; i < priv->gpc_nr; i++) {
  priv->tpc_nr[i] = nv_rd32(priv, GPC_UNIT(i, 0x2608));
  priv->tpc_total += priv->tpc_nr[i];
 }

Step 1: Print out the various values (i.e. number of ROPs, GPCs, and the per-GPC TPC counts).
Step 2: Artificially lower them (to, e.g., 1) and see if it helps. If it does, figure out which of the values matter and where the breaking points are.

If it doesn't help, perhaps the units need to be disabled a little harder, e.g. by setting 0x22584/0x22588.