All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/37] Volting/Clocking improvements for Fermi and newer
@ 2016-04-18 19:13 Karol Herbst
       [not found] ` <1461006851-5007-1-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
  0 siblings, 1 reply; 69+ messages in thread
From: Karol Herbst @ 2016-04-18 19:13 UTC (permalink / raw)
  To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

We are slowly getting there!

v4 of the series with some realy good improvements, so I am sure this is like
95% done and only needs some proper polishing and proper Reviews!

I also added the NvVoltOffsetmV module parameter, so that a user is able to
over and !under!-volt the GPU. Overvolting makes sense, when there are still
some reclocking issues left, which might be solved by a higher voltage.

Undervolting makes sense to decrease the used voltage for each Cstate and to
make more C-States available on a handfull cards. This is some sort of really
basic Overclocking support, which comes at the cost of stability, but has
nearly no impact on the power consumption or heat production.

But because this doesn't add new stuff and only directly modifies the voltage
calculation, it is all still according to the vbios and doesn't add new clocks
or something like that.

If anything is unclear how I REed or got the information, please leave a note
so that I can provide additional information in the commits.

This series can be found on my "stable_reclocking_kepler_v4" branch on github

Happy testing and happy reviewing!

v3: adjust to temperature and minor fixes in the commits
v4: add speedo values
    add proper coefficients based on speedo
    refactor some code in clk to not affect pre-fermi chips
    add NvVoltOffsetmV option

Karol Herbst (37):
  bios/volt: handle voltage table version 0x50 with 0ed header
  volt: properly detect entry based voltage tables
  volt: save the voltage range we are able to set
  volt: add nvkm_volt_map_min function
  clk: don't create cstates whit voltages higher than what the gpu can
    do
  volt: parse the max voltage map entries
  volt: add min_id parameter to nvkm_volt_set_id
  clk: export nvkm_volt_map
  clk: add index field to nvkm_cstate
  add daemon to compare nouveau with blob voltage
  volt: add temperature parameter to nvkm_volt_map
  clk: fixup cstate selection
  clk: respect voltage limits in nvkm_cstate_prog
  bios: add parsing of BASE CLOCK table
  clk: allow boosting only when NvBoost is set
  volt: don't require perfect fit
  bios/vmap: unk0 field is the mode
  volt: add speedo
  volt: add gf100 subdev with speedo
  volt: add coefficients
  clk: save the max clock we can set
  clk: rename nvkm_pstate_calc to nvkm_clk_update
  nvif: add boost info and set operations
  debugfs: add boost interface to change the boost_mode
  clk: remove dstate and tstate
  therm: don't cancel the timer
  clk: make pstate a pointer to nvkm_pstate
  clk: hold information about the current cstate status
  clk: we should pass the pstate id around not the index in the list
  clk: seperate the locking from the implementation in nvkm_clk_update
  clk: split out update code to nv40
  clk: only do partial reclocks as required
  therm: trigger reclock in temperature daemon
  mc: fix NULL pointer access in libnouveau
  clk: set clocks to pre suspend state after suspend
  WIP volt/gk104: readout speedo
  volt: add NvVoltOffsetmV option

 bin/nv_cmp_volt.c                                | 139 +++++++++++
 drm/nouveau/include/nvif/if0001.h                |  15 ++
 drm/nouveau/include/nvkm/subdev/bios/baseclock.h |  24 ++
 drm/nouveau/include/nvkm/subdev/bios/vmap.h      |   5 +-
 drm/nouveau/include/nvkm/subdev/bios/volt.h      |   5 +-
 drm/nouveau/include/nvkm/subdev/clk.h            |  23 +-
 drm/nouveau/include/nvkm/subdev/volt.h           |  17 +-
 drm/nouveau/nouveau_debugfs.c                    |  82 ++++++-
 drm/nouveau/nvkm/engine/device/base.c            |  17 +-
 drm/nouveau/nvkm/engine/device/ctrl.c            |  60 ++++-
 drm/nouveau/nvkm/subdev/bios/Kbuild              |   1 +
 drm/nouveau/nvkm/subdev/bios/baseclock.c         |  82 +++++++
 drm/nouveau/nvkm/subdev/bios/vmap.c              |  12 +-
 drm/nouveau/nvkm/subdev/bios/volt.c              |  45 ++--
 drm/nouveau/nvkm/subdev/clk/base.c               | 298 ++++++++++++++++-------
 drm/nouveau/nvkm/subdev/clk/g84.c                |   1 +
 drm/nouveau/nvkm/subdev/clk/gf100.c              |  63 ++++-
 drm/nouveau/nvkm/subdev/clk/gk104.c              |   3 +-
 drm/nouveau/nvkm/subdev/clk/gk20a.c              |   1 +
 drm/nouveau/nvkm/subdev/clk/gm20b.c              |   1 +
 drm/nouveau/nvkm/subdev/clk/gt215.c              |   1 +
 drm/nouveau/nvkm/subdev/clk/mcp77.c              |   1 +
 drm/nouveau/nvkm/subdev/clk/nv40.c               |  18 ++
 drm/nouveau/nvkm/subdev/clk/nv50.c               |   1 +
 drm/nouveau/nvkm/subdev/clk/priv.h               |   9 +
 drm/nouveau/nvkm/subdev/mc/base.c                |   7 +-
 drm/nouveau/nvkm/subdev/pmu/gk20a.c              |  23 +-
 drm/nouveau/nvkm/subdev/therm/base.c             |  14 +-
 drm/nouveau/nvkm/subdev/volt/Kbuild              |   1 +
 drm/nouveau/nvkm/subdev/volt/base.c              | 159 +++++++++++-
 drm/nouveau/nvkm/subdev/volt/gf100.c             |  59 +++++
 drm/nouveau/nvkm/subdev/volt/gk104.c             |  19 ++
 drm/nouveau/nvkm/subdev/volt/priv.h              |   1 +
 33 files changed, 1034 insertions(+), 173 deletions(-)
 create mode 100644 bin/nv_cmp_volt.c
 create mode 100644 drm/nouveau/include/nvkm/subdev/bios/baseclock.h
 create mode 100644 drm/nouveau/nvkm/subdev/bios/baseclock.c
 create mode 100644 drm/nouveau/nvkm/subdev/volt/gf100.c

-- 
2.8.1

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 69+ messages in thread

end of thread, other threads:[~2016-04-20 22:56 UTC | newest]

Thread overview: 69+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-18 19:13 [PATCH v4 00/37] Volting/Clocking improvements for Fermi and newer Karol Herbst
     [not found] ` <1461006851-5007-1-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-18 19:13   ` [PATCH v4 01/37] bios/volt: handle voltage table version 0x50 with 0ed header Karol Herbst
2016-04-18 19:13   ` [PATCH v4 02/37] volt: properly detect entry based voltage tables Karol Herbst
2016-04-18 19:13   ` [PATCH v4 03/37] volt: save the voltage range we are able to set Karol Herbst
2016-04-18 19:13   ` [PATCH v4 04/37] volt: add nvkm_volt_map_min function Karol Herbst
2016-04-18 19:13   ` [PATCH v4 05/37] clk: don't create cstates whit voltages higher than what the gpu can do Karol Herbst
2016-04-18 19:13   ` [PATCH v4 06/37] volt: parse the max voltage map entries Karol Herbst
     [not found]     ` <1461006851-5007-7-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 19:46       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 07/37] volt: add min_id parameter to nvkm_volt_set_id Karol Herbst
2016-04-18 19:13   ` [PATCH v4 08/37] clk: export nvkm_volt_map Karol Herbst
     [not found]     ` <1461006851-5007-9-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 19:54       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 09/37] clk: add index field to nvkm_cstate Karol Herbst
2016-04-18 19:13   ` [PATCH v4 10/37] add daemon to compare nouveau with blob voltage Karol Herbst
     [not found]     ` <1461006851-5007-11-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 20:26       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 11/37] volt: add temperature parameter to nvkm_volt_map Karol Herbst
     [not found]     ` <1461006851-5007-12-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 20:06       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 12/37] clk: fixup cstate selection Karol Herbst
2016-04-18 19:13   ` [PATCH v4 13/37] clk: respect voltage limits in nvkm_cstate_prog Karol Herbst
     [not found]     ` <1461006851-5007-14-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 21:04       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 14/37] bios: add parsing of BASE CLOCK table Karol Herbst
2016-04-18 19:13   ` [PATCH v4 15/37] clk: allow boosting only when NvBoost is set Karol Herbst
     [not found]     ` <1461006851-5007-16-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 21:06       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 16/37] volt: don't require perfect fit Karol Herbst
     [not found]     ` <1461006851-5007-17-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 21:10       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 17/37] bios/vmap: unk0 field is the mode Karol Herbst
     [not found]     ` <1461006851-5007-18-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 21:11       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 18/37] volt: add speedo Karol Herbst
     [not found]     ` <1461006851-5007-19-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 21:17       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 19/37] volt: add gf100 subdev with speedo Karol Herbst
     [not found]     ` <1461006851-5007-20-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 21:43       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 20/37] volt: add coefficients Karol Herbst
     [not found]     ` <1461006851-5007-21-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 21:52       ` Martin Peres
     [not found]         ` <5716A8B4.6020208-GANU6spQydw@public.gmane.org>
2016-04-19 21:54           ` Ilia Mirkin
     [not found]             ` <CAKb7UvhkH732AfCDRtkWG7GMzgXQYmf0XLzc0w7vfR7R9VuQ9A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-04-19 22:06               ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 21/37] clk: save the max clock we can set Karol Herbst
     [not found]     ` <1461006851-5007-22-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-19 22:07       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 22/37] clk: rename nvkm_pstate_calc to nvkm_clk_update Karol Herbst
     [not found]     ` <1461006851-5007-23-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 20:12       ` Martin Peres
2016-04-18 19:13   ` [PATCH v4 23/37] nvif: add boost info and set operations Karol Herbst
2016-04-18 19:13   ` [PATCH v4 24/37] debugfs: add boost interface to change the boost_mode Karol Herbst
2016-04-18 19:13   ` [PATCH v4 25/37] clk: remove dstate and tstate Karol Herbst
     [not found]     ` <1461006851-5007-26-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 20:45       ` Martin Peres
     [not found]         ` <5717EA51.8040605-GANU6spQydw@public.gmane.org>
2016-04-20 20:45           ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 26/37] therm: don't cancel the timer Karol Herbst
     [not found]     ` <1461006851-5007-27-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 20:47       ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 27/37] clk: make pstate a pointer to nvkm_pstate Karol Herbst
     [not found]     ` <1461006851-5007-28-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 20:53       ` Martin Peres
     [not found]         ` <5717EC47.4040605-GANU6spQydw@public.gmane.org>
2016-04-20 21:46           ` karol herbst
     [not found]             ` <CAEXux-b+kaXYRt4BiOLbPWHY+jjpac2EXxuhetxR4-NER_DNsA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-04-20 22:56               ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 28/37] clk: hold information about the current cstate status Karol Herbst
     [not found]     ` <1461006851-5007-29-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 21:38       ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 29/37] clk: we should pass the pstate id around not the index in the list Karol Herbst
     [not found]     ` <1461006851-5007-30-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 21:59       ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 30/37] clk: seperate the locking from the implementation in nvkm_clk_update Karol Herbst
     [not found]     ` <1461006851-5007-31-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 22:00       ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 31/37] clk: split out update code to nv40 Karol Herbst
     [not found]     ` <1461006851-5007-32-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 22:08       ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 32/37] clk: only do partial reclocks as required Karol Herbst
     [not found]     ` <1461006851-5007-33-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 22:17       ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 33/37] therm: trigger reclock in temperature daemon Karol Herbst
     [not found]     ` <1461006851-5007-34-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 22:18       ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 34/37] mc: fix NULL pointer access in libnouveau Karol Herbst
     [not found]     ` <1461006851-5007-35-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 22:21       ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 35/37] clk: set clocks to pre suspend state after suspend Karol Herbst
     [not found]     ` <1461006851-5007-36-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 22:23       ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 36/37] WIP volt/gk104: readout speedo Karol Herbst
     [not found]     ` <1461006851-5007-37-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 22:39       ` Martin Peres
2016-04-18 19:14   ` [PATCH v4 37/37] volt: add NvVoltOffsetmV option Karol Herbst
     [not found]     ` <1461006851-5007-38-git-send-email-nouveau-lIBOoy2+GI7scQ4cX5LuPg@public.gmane.org>
2016-04-20 22:55       ` Martin Peres

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.