[Nouveau] pstate for NVS140

Dylan Taft dylanetaft at gmail.com
Mon Sep 14 22:39:16 PDT 2015


I'm trying out the 4.3 RC kernel, major improvements with Nouveau on
my old T61 laptop with an NVS140 GPU.  Stability and performance both
seem massively increased.  There are still some stability issues with
3D games and switching resolutions on the fly.  2D performance kicks
the pants off the binary driver, 3D performance seems to be catching
up.

I noticed a module setting for pstate for clocking up and down the
GPU, but it's "unimplemented".

Dug into the kernel source and saw that my GPU is considered g86 from
what I can tell.  It calls the g84_clk_new function, which calls the
the nv50_clk_new_ code.  It looks very much implemented.

There's a check in g84_clk_new, checks if the GPU chipset is 0xa0.

Anyway, if I just pass in true for the allow_reclock param, it does
work, it looks like a lot of chipsets just share the NV50 base code?
The clock rates and such appear to be pulled from GPU registers or
something.

cat pstate
20: core 169 MHz shader 338 MHz memory 100 MHz
21: core 275 MHz shader 550 MHz memory 301 MHz
22: core 400 MHz shader 800 MHz memory 600 MHz AC DC *
AC: core 400 MHz shader 800 MHz memory 302 MHz

It nets an extra 60-70fps in glxgears, and a handful of FPS in games.
Stability wise it works best making adjustments from a virtual console
while no graphically intense apps are running in X, ideally even
before X starts, it can get unstable during change.

I guess long story short, is there anything I can do in regards to
testing to help get it enabled upstream for NVS140?

Cool stuff.  Thanks for all the work on the Nouveau driver.  The 4.3
driver is pretty great!


More information about the Nouveau mailing list