[Nouveau] [PATCH 0/4] PMU engine counters

Karol Herbst nouveau at karolherbst.de
Mon Feb 8 12:43:14 CET 2016

these are usually used for dynamic reclocking on gt215 and newer

The counters are used to get the load of the core, memory, video and pcie loads

currently I expose the loads through a debugfs "current_load" file, but I want
to move that to nvif and just add a wrapper around that in debugfs for

Anyway there are still some issues I would like to discuss:
1. currently the value rangeof the values is 0-0xff
   I choosed to do this to simplify the code on the pmu, but 0-0xffff is also
   easy to do. Higher accuracy would involve doing more PMU requests and it
   would make the code bigger in size with no real benefit
2. Because these counters are used for dynamic reclocking, these can't be
   reconfigured at runtime. This means we have to fill slots with meaningfull
   configurations. On [GT215-GF100) we have only 4 slots, which means we can't
   do much with them anyway. Since GF100 there are 8 slots, leaving 3 for other
   stuff we might want to add to decide better on new clocks
3. I want to expose those loads through NVIF, but I don't have a good idea how
   to do that. Anyway the debugfs file will be a wrapper around the nvif stuff
   then for convenience

Karol Herbst (4):
  subdev/pmu/fuc: add gk104
  pmu/fuc: add macros for pdaemon pwr counters
  subdev/pmu/fuc: implement counter readout
  nouveau/debugfs: add interface for current load

 drm/nouveau/include/nvif/device.h            |    1 +
 drm/nouveau/include/nvkm/subdev/pmu.h        |   10 +
 drm/nouveau/nouveau_debugfs.c                |   24 +
 drm/nouveau/nvkm/subdev/pmu/base.c           |   18 +
 drm/nouveau/nvkm/subdev/pmu/fuc/gf100.fuc3.h |  401 +++---
 drm/nouveau/nvkm/subdev/pmu/fuc/gf119.fuc4.h |  735 +++++-----
 drm/nouveau/nvkm/subdev/pmu/fuc/gk104.fuc4   |   70 +
 drm/nouveau/nvkm/subdev/pmu/fuc/gk104.fuc4.h | 1866 ++++++++++++++++++++++++++
 drm/nouveau/nvkm/subdev/pmu/fuc/gk208.fuc5.h |  713 +++++-----
 drm/nouveau/nvkm/subdev/pmu/fuc/gt215.fuc3.h |  730 ++++++----
 drm/nouveau/nvkm/subdev/pmu/fuc/macros.fuc   |   25 +
 drm/nouveau/nvkm/subdev/pmu/fuc/os.h         |    4 +
 drm/nouveau/nvkm/subdev/pmu/fuc/perf.fuc     |  137 ++
 drm/nouveau/nvkm/subdev/pmu/gk104.c          |    4 +-
 drm/nouveau/nvkm/subdev/pmu/gk110.c          |    6 +-
 15 files changed, 3626 insertions(+), 1118 deletions(-)
 create mode 100644 drm/nouveau/nvkm/subdev/pmu/fuc/gk104.fuc4
 create mode 100644 drm/nouveau/nvkm/subdev/pmu/fuc/gk104.fuc4.h


More information about the Nouveau mailing list