All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/2] CPUFreq driver using CPPC methods
@ 2015-01-27 21:03 Ashwin Chaugule
  2015-01-27 21:03 ` [PATCH v4 1/2] Mailbox: Restructure and simplify PCC mailbox code Ashwin Chaugule
  2015-01-27 21:03 ` [PATCH v4 2/2] CPPC: Add CPUFreq driver based on CPPC methods Ashwin Chaugule
  0 siblings, 2 replies; 17+ messages in thread
From: Ashwin Chaugule @ 2015-01-27 21:03 UTC (permalink / raw)
  To: rjw
  Cc: rwells, linda.knippers, linux-pm, Catalin.Marinas, patches,
	linaro-acpi, ashwin.chaugule, viresh.kumar, jaswinder.singh,
	broonie, arnd.bergmann

CPPC:
====

CPPC (Collaborative Processor Performance Control) is a new way to control CPU
performance using an abstract continous scale as against a discretized P-state scale
which is tied to CPU frequency only. It is defined in the ACPI 5.0+ spec. In brief,
the basic operation involves:
- OS makes a CPU performance request. (Can provide min and max tolerable bounds)

- Platform (such as BMC) is free to optimize request within requested bounds depending
on power/thermal budgets etc.

- Platform conveys its decision back to OS

The communication between OS and platform occurs through another medium called (PCC)
Platform communication Channel. This is a generic mailbox like mechanism which includes
doorbell semantics to indicate register updates. See drivers/mailbox/pcc.c

This patchset introduces a CPPC based CPUFreq driver that works with existing governors
such as ondemand. The CPPC table parsing and the CPPC communication semantics are
abstracted into separate files to allow future CPPC based drivers to implement their
own governors if required.

Initial patchsets included an adaptation of the PID governor from intel_pstate.c. However
recent experiments led to extensive modifications of the algorithm to calculate CPU
busyness. Until it is verified that these changes are worthwhile, the existing governors
should provide for a good enough starting point for ARM64 servers.

Finer details about the PCC and CPPC spec are available in the latest ACPI 5.1
specification.[2]

Changes since V3:
- Split CPPC backend methods into separate files.
- Add frontend driver which plugs into existing CPUfreq governors.
- Simplify PCC driver by moving communication space mapping and read/write
	into client drivers.

Changes since V2:
- Select driver if !X86, since intel_pstate will use HWP extensions instead.
- Added more comments.
- Added Freq domain awareness and PSD parsing.

Changes since V1:
- Create a new driver based on Dirks suggestion.
- Fold in CPPC backend hooks into main driver.

Changes since V0: [1]
- Split intel_pstate.c into a generic PID governor and platform specific backend.
- Add CPPC accessors as PID backend.

[1] - http://lwn.net/Articles/608715/
[2] - http://www.uefi.org/sites/default/files/resources/ACPI_5_1release.pdf
[3] - https://patches.linaro.org/40705/


Ashwin Chaugule (2):
  Mailbox: Restructure and simplify PCC mailbox code
  CPPC: Add CPUFreq driver based on CPPC methods

 drivers/cpufreq/Kconfig.arm    |  15 +
 drivers/cpufreq/Makefile       |   1 +
 drivers/cpufreq/cppc_acpi.c    | 801 +++++++++++++++++++++++++++++++++++++++++
 drivers/cpufreq/cppc_acpi.h    | 134 +++++++
 drivers/cpufreq/cppc_cpufreq.c | 186 ++++++++++
 drivers/mailbox/pcc.c          | 122 ++-----
 6 files changed, 1174 insertions(+), 85 deletions(-)
 create mode 100644 drivers/cpufreq/cppc_acpi.c
 create mode 100644 drivers/cpufreq/cppc_acpi.h
 create mode 100644 drivers/cpufreq/cppc_cpufreq.c

-- 
1.9.1


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

end of thread, other threads:[~2015-05-11 17:35 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-27 21:03 [PATCH v4 0/2] CPUFreq driver using CPPC methods Ashwin Chaugule
2015-01-27 21:03 ` [PATCH v4 1/2] Mailbox: Restructure and simplify PCC mailbox code Ashwin Chaugule
2015-02-13 13:07   ` Ashwin Chaugule
2015-02-13 14:38     ` Rafael J. Wysocki
2015-02-13 23:31       ` Ashwin Chaugule
2015-02-14  0:01         ` Ashwin Chaugule
2015-03-12 23:28           ` Rafael J. Wysocki
2015-03-13  1:34             ` Ashwin Chaugule
2015-03-19 23:11             ` Ashwin Chaugule
2015-01-27 21:03 ` [PATCH v4 2/2] CPPC: Add CPUFreq driver based on CPPC methods Ashwin Chaugule
2015-02-03 22:33   ` Rafael J. Wysocki
2015-02-04  3:23     ` Ashwin Chaugule
2015-02-04 14:33       ` Rafael J. Wysocki
2015-02-04 15:18         ` Ashwin Chaugule
2015-04-01 15:38           ` Ashwin Chaugule
2015-05-08 22:30   ` Rafael J. Wysocki
2015-05-11 17:35     ` Ashwin Chaugule

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.