[Nouveau] BIG changes to kernel module

Marcin Slusarz marcin.slusarz at gmail.com
Sun Aug 5 13:56:37 PDT 2012


On Sun, Aug 05, 2012 at 12:40:15PM +1000, Ben Skeggs wrote:
> Hey all,
> 
> I've just pushed a major rework/rewrite of the Nouveau kernel module to git[1].
> 
> Details of the whys and what-nots of the rework are in the various commit
> messages.  At this point don't expect any exciting cool functionality, the
> work so far is merely a restructure to allow moving forward on a number
> of fronts in the future.
> 
> I expect that for a while there will be a *lot* of stupid typos/thinkos that
> cause all sorts of breakage, so please test everything any anything you can
> and report *regressions* from the pre-rework code (vs 3.6-rc1 for example).
> 
> I'll endeavour to hunt down and fix the regressions as quickly as possible, so
> please report any issues to this list and/or the freedesktop bugzilla.
> 
> There's two areas that didn't get "properly" ported over, that is PM-related
> things and modesetting.  I'll be handling the modesetting and clk/volt reworks
> starting from nowish (in between fixing regressions), and I suspect Martin
> will handle the rest of the PM bits (therm and fanctrl) since he knows the
> design he's going for there.
> 
> One thing to note is that some kernel module options have changed now, the
> more important ones are:
> 
> nouveau.vbios=<blah> -> nouveau.config=NvBIOS=<blah>
> nouveau.noaccel=<bool> -> nouveau.config=PGRAPH=<bool>
> 
> Multiple options are specified like:
> 
> nouveau.config=NvBIOS=ACPI,PGRAPH=1
> 
> The nouveau.noaccel option now controls acceleration enable/disable for the
> DRM's own GPU usage, and for the "abi16" (the new interfaces aren't even
> exposed to userspace yet) interfaces.
> 
> The DRM debugging options (drm.debug=<bitfield>) now only effect the DRM
> specific parts of the nouveau module.  To enable additional debugging etc
> for the core, incantations like the following are used now:
> 
> for debug output
> 
> nouveau.debug=debug
> 
> or for even more verbose debug output
> 
> nouveau.debug=trace
> 
> or for trace output for everything, and register write logging from POST
> 
> nouveau.debug=trace,DEVINIT=spam
> 
> Each individual subdev/engine module has its own debug level that can
> override the master debug level.

It would be very helpful to document this convention and all options in some
text file in-tree (and later update it when things change).

Some things I noticed:
- corruptions / lockups in Warsow (1.0) on one of the bomb maps (I didn't test
  too much, so it might happen on others too) - initially bisected to
  "drm/nouveau/instmem: completely new implementation, as a subdev module",
  but I'm not so sure about it - with this commit most textures are corrupted
  and there are PGRAPH_TRAP_MP_EXEC errors in dmesg, but on HEAD I see total
  mayhem with DATA_ERROR, followed by TRAP_MP_EXEC and endless stream of page
  faults
- new lockups triggerable by piglit
- VRAM leak? (probably triggered by piglit)
- missing channel id in error messages
- debugfs removed (not advertised in any commit, so I don't know if it's
  intentional or not)
- some leftovers:
  - XXX_THIS_IS_A_HACK
  - /* yell very loudly!! */ (no code implementing yelling ;)

Marcin


More information about the Nouveau mailing list