linux-uconsole/kernel/power
Quentin Perret 5f5a57750b FROMGIT: PM / EM: Expose the Energy Model in debugfs
The recently introduced Energy Model (EM) framework manages power cost
tables of CPUs. These tables are currently only visible from kernel
space. However, in order to debug the behaviour of subsystems that use
the EM (EAS for example), it is often required to know what the power
costs are from userspace.

For this reason, introduce under /sys/kernel/debug/energy_model a set of
directories representing the performance domains of the system. Each
performance domain contains a set of sub-directories representing the
different capacity states (cs) and their attributes, as well as a file
exposing the related CPUs.

The resulting hierarchy is as follows on Arm juno r0 for example:

    /sys/kernel/debug/energy_model
    ├── pd0
    │   ├── cpus
    │   ├── cs:450000
    │   │   ├── cost
    │   │   ├── frequency
    │   │   └── power
    │   ├── cs:575000
    │   │   ├── cost
    │   │   ├── frequency
    │   │   └── power
    │   ├── cs:700000
    │   │   ├── cost
    │   │   ├── frequency
    │   │   └── power
    │   ├── cs:775000
    │   │   ├── cost
    │   │   ├── frequency
    │   │   └── power
    │   └── cs:850000
    │       ├── cost
    │       ├── frequency
    │       └── power
    └── pd1
        ├── cpus
        ├── cs:1100000
        │   ├── cost
        │   ├── frequency
        │   └── power
        ├── cs:450000
        │   ├── cost
        │   ├── frequency
        │   └── power
        ├── cs:625000
        │   ├── cost
        │   ├── frequency
        │   └── power
        ├── cs:800000
        │   ├── cost
        │   ├── frequency
        │   └── power
        └── cs:950000
            ├── cost
            ├── frequency
            └── power

Bug: 120440300
Change-Id: I4098c3d3e07fc4a14514751ac881422131b759e9
Signed-off-by: Quentin Perret <quentin.perret@arm.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
(cherry picked from commit 9cac42d064
 git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git bleeding-edge)
Signed-off-by: Quentin Perret <quentin.perret@arm.com>
2019-01-28 17:05:00 +00:00
..
autosleep.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
console.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
energy_model.c FROMGIT: PM / EM: Expose the Energy Model in debugfs 2019-01-28 17:05:00 +00:00
hibernate.c PM / reboot: Eliminate race between reboot and suspend 2018-08-06 12:35:20 +02:00
Kconfig FROMLIST: PM: Introduce an Energy Model management framework 2018-10-26 11:47:11 +01:00
main.c PM / reboot: Eliminate race between reboot and suspend 2018-08-06 12:35:20 +02:00
Makefile ANDROID: power: wakeup_reason: add an API to log wakeup reasons 2018-12-05 09:48:13 -08:00
power.h x86/power: Fix swsusp_arch_resume prototype 2018-02-02 23:33:50 +01:00
poweroff.c power/sysrq: fix inconstistent help message of sysrq key 2013-04-30 17:04:10 -07:00
process.c ANDROID: power: wakeup_reason: add an API to log wakeup reasons 2018-12-05 09:48:13 -08:00
qos.c PM / QoS: Drop redundant declaration of pm_qos_get_value() 2018-05-28 23:21:41 +02:00
snapshot.c PM: hibernate: Do not subtract NR_FILE_MAPPED in minimum_image_size() 2018-01-05 14:46:25 +01:00
suspend.c ANDROID: power: wakeup_reason: add an API to log wakeup reasons 2018-12-05 09:48:13 -08:00
suspend_test.c PM / s2idle: Rename PM_SUSPEND_FREEZE to PM_SUSPEND_TO_IDLE 2017-08-11 01:29:55 +02:00
swap.c PM / hibernate: cast PAGE_SIZE to int when comparing with error code 2018-07-02 11:48:30 +02:00
user.c PM / reboot: Eliminate race between reboot and suspend 2018-08-06 12:35:20 +02:00
wakelock.c PM / wakeup: Only update last time for active wakeup sources 2018-05-10 11:39:19 +02:00
wakeup_reason.c ANDROID: power: wakeup_reason: add an API to log wakeup reasons 2018-12-05 09:48:13 -08:00