11 Nov, 2020

2 commits

  • Pull turbostat updates from Len Brown:
    "Update update to version 20.09.30, one kernel side fix"

    * 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
    tools/power turbostat: update version number
    powercap: restrict energy meter to root access
    tools/power turbostat: harden against cpu hotplug
    tools/power turbostat: adjust for temperature offset
    tools/power turbostat: Build with _FILE_OFFSET_BITS=64
    tools/power turbostat: Support AMD Family 19h
    tools/power turbostat: Remove empty columns for Jacobsville
    tools/power turbostat: Add a new GFXAMHz column that exposes gt_act_freq_mhz.
    tools/power x86_energy_perf_policy: Input/output error in a VM
    tools/power turbostat: Skip pc8, pc9, pc10 columns, if they are disabled
    tools/power turbostat: Support additional CPU model numbers
    tools/power turbostat: Fix output formatting for ACPI CST enumeration
    tools/power turbostat: Replace HTTP links with HTTPS ones: TURBOSTAT UTILITY
    tools/power turbostat: Use sched_getcpu() instead of hardcoded cpu 0
    tools/power turbostat: Enable accumulate RAPL display
    tools/power turbostat: Introduce functions to accumulate RAPL consumption
    tools/power turbostat: Make the energy variable to be 64 bit
    tools/power turbostat: Always print idle in the system configuration header
    tools/power turbostat: Print /dev/cpu_dma_latency

    Linus Torvalds
     
  • Remove non-privileged user access to power data contained in
    /sys/class/powercap/intel-rapl*/*/energy_uj

    Non-privileged users currently have read access to power data and can
    use this data to form a security attack. Some privileged
    drivers/applications need read access to this data, but don't expose it
    to non-privileged users.

    For example, thermald uses this data to ensure that power management
    works correctly. Thus removing non-privileged access is preferred over
    completely disabling this power reporting capability with
    CONFIG_INTEL_RAPL=n.

    Fixes: 95677a9a3847 ("PowerCap: Fix mode for energy counter")

    Signed-off-by: Len Brown
    Cc: stable@vger.kernel.org

    Len Brown
     

03 Nov, 2020

1 commit


19 Oct, 2020

1 commit


16 Oct, 2020

2 commits

  • On multi-package systems, the Psys MSR is only valid for CPUs on
    specific package (master package). The current code makes the
    assumption that package 0 is the master package, but this is not
    true on new platforms like SPR.

    Fix the problem by emuerating the Psys RAPL domain for every
    package, so CPUs in slave packages will read 0 for the Psys energy
    counter and only CPUs in master packages can get a valid reading
    and register the Psys RAPL domain.

    The sysfs I/F for the Psys RAPL domain is not changed.

    Signed-off-by: Zhang Rui
    [ rjw: Subject and changelog edits ]
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     
  • As only the low 32 bits of the RAPL_DOMAIN_REG_STATUS register
    represents the energy counter, and the high 32 bits are reserved,
    detect the existence of a RAPL domain by checking the low 32 bits only.

    Signed-off-by: Zhang Rui
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     

25 Sep, 2020

1 commit

  • Include the linux/idle_inject.h header to fix W=1 build warning:

    drivers/powercap/idle_inject.c:152:6: warning: no previous prototype for ‘idle_inject_set_duration’ [-Wmissing-prototypes]
    drivers/powercap/idle_inject.c:167:6: warning: no previous prototype for ‘idle_inject_get_duration’ [-Wmissing-prototypes]
    drivers/powercap/idle_inject.c:179:6: warning: no previous prototype for ‘idle_inject_set_latency’ [-Wmissing-prototypes]
    drivers/powercap/idle_inject.c:195:5: warning: no previous prototype for ‘idle_inject_start’ [-Wmissing-prototypes]
    drivers/powercap/idle_inject.c:227:6: warning: no previous prototype for ‘idle_inject_stop’ [-Wmissing-prototypes]
    drivers/powercap/idle_inject.c:299:28: warning: no previous prototype for ‘idle_inject_register’ [-Wmissing-prototypes]
    drivers/powercap/idle_inject.c:345:6: warning: no previous prototype for ‘idle_inject_unregister’ [-Wmissing-prototypes]

    Signed-off-by: Pujin Shi
    Signed-off-by: Rafael J. Wysocki

    Pujin Shi
     

16 Sep, 2020

1 commit


11 Sep, 2020

3 commits


07 Aug, 2020

1 commit

  • Pull sched/fifo updates from Ingo Molnar:
    "This adds the sched_set_fifo*() encapsulation APIs to remove static
    priority level knowledge from non-scheduler code.

    The three APIs for non-scheduler code to set SCHED_FIFO are:

    - sched_set_fifo()
    - sched_set_fifo_low()
    - sched_set_normal()

    These are two FIFO priority levels: default (high), and a 'low'
    priority level, plus sched_set_normal() to set the policy back to
    non-SCHED_FIFO.

    Since the changes affect a lot of non-scheduler code, we kept this in
    a separate tree"

    * tag 'sched-fifo-2020-08-04' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
    sched,tracing: Convert to sched_set_fifo()
    sched: Remove sched_set_*() return value
    sched: Remove sched_setscheduler*() EXPORTs
    sched,psi: Convert to sched_set_fifo_low()
    sched,rcutorture: Convert to sched_set_fifo_low()
    sched,rcuperf: Convert to sched_set_fifo_low()
    sched,locktorture: Convert to sched_set_fifo()
    sched,irq: Convert to sched_set_fifo()
    sched,watchdog: Convert to sched_set_fifo()
    sched,serial: Convert to sched_set_fifo()
    sched,powerclamp: Convert to sched_set_fifo()
    sched,ion: Convert to sched_set_normal()
    sched,powercap: Convert to sched_set_fifo*()
    sched,spi: Convert to sched_set_fifo*()
    sched,mmc: Convert to sched_set_fifo*()
    sched,ivtv: Convert to sched_set_fifo*()
    sched,drm/scheduler: Convert to sched_set_fifo*()
    sched,msm: Convert to sched_set_fifo*()
    sched,psci: Convert to sched_set_fifo*()
    sched,drbd: Convert to sched_set_fifo*()
    ...

    Linus Torvalds
     

27 Jul, 2020

1 commit

  • Modern Intel Mobile platforms support power limit4 (PL4), which is
    the SoC package level maximum power limit (in Watts). It can be used
    to preemptively limits potential SoC power to prevent power spikes
    from tripping the power adapter and battery over-current protection.
    This patch enables this feature by exposing package level peak power
    capping control to userspace via RAPL sysfs interface. With this,
    application like DTPF can modify PL4 power limit, the similar way
    of other package power limit (PL1).
    As this feature is not tested on previous generations, here it is
    enabled only for the platform that has been verified to work,
    for safety concerns.

    Signed-off-by: Sumeet Pawnikar
    Co-developed-by: Zhang Rui
    Signed-off-by: Zhang Rui
    Reviewed-by: Srinivas Pandruvada
    Tested-by: Srinivas Pandruvada
    Signed-off-by: Rafael J. Wysocki

    Sumeet Pawnikar
     

09 Jul, 2020

1 commit


01 Jul, 2020

1 commit


15 Jun, 2020

1 commit

  • Because SCHED_FIFO is a broken scheduler model (see previous patches)
    take away the priority field, the kernel can't possibly make an
    informed decision.

    Effectively no change.

    Cc: daniel.lezcano@linaro.org
    Cc: rafael.j.wysocki@intel.com
    Signed-off-by: Peter Zijlstra (Intel)
    Reviewed-by: Ingo Molnar

    Peter Zijlstra
     

14 Jun, 2020

2 commits

  • Pull more Kbuild updates from Masahiro Yamada:

    - fix build rules in binderfs sample

    - fix build errors when Kbuild recurses to the top Makefile

    - covert '---help---' in Kconfig to 'help'

    * tag 'kbuild-v5.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    treewide: replace '---help---' in Kconfig files with 'help'
    kbuild: fix broken builds because of GZIP,BZIP2,LZOP variables
    samples: binderfs: really compile this sample and fix build issues

    Linus Torvalds
     
  • Since commit 84af7a6194e4 ("checkpatch: kconfig: prefer 'help' over
    '---help---'"), the number of '---help---' has been gradually
    decreasing, but there are still more than 2400 instances.

    This commit finishes the conversion. While I touched the lines,
    I also fixed the indentation.

    There are a variety of indentation styles found.

    a) 4 spaces + '---help---'
    b) 7 spaces + '---help---'
    c) 8 spaces + '---help---'
    d) 1 space + 1 tab + '---help---'
    e) 1 tab + '---help---' (correct indentation)
    f) 1 tab + 1 space + '---help---'
    g) 1 tab + 2 spaces + '---help---'

    In order to convert all of them to 1 tab + 'help', I ran the
    following commend:

    $ find . -name 'Kconfig*' | xargs sed -i 's/^[[:space:]]*---help---/\thelp/'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

13 Jun, 2020

1 commit

  • Pull thermal updates from Daniel Lezcano:

    - Add the hwmon support on the i.MX SC (Anson Huang)

    - Thermal framework cleanups (self-encapsulation, pointless stubs,
    private structures) (Daniel Lezcano)

    - Use the PM QoS frequency changes for the devfreq cooling device
    (Matthias Kaehlcke)

    - Remove duplicate error messages from platform_get_irq() error
    handling (Markus Elfring)

    - Add support for the bandgap sensors (Keerthy)

    - Statically initialize .get_mode/.set_mode ops (Andrzej Pietrasiewicz)

    - Add Renesas R-Car maintainer entry (Niklas Söderlund)

    - Fix error checking after calling ti_bandgap_get_sensor_data() for the
    TI SoC thermal (Sudip Mukherjee)

    - Add latency constraint for the idle injection, the DT binding and the
    change the registering function (Daniel Lezcano)

    - Convert the thermal framework binding to the Yaml schema (Amit
    Kucheria)

    - Replace zero-length array with flexible-array on i.MX 8MM (Gustavo A.
    R. Silva)

    - Thermal framework cleanups (alphabetic order for heads, replace
    module.h by export.h, make file naming consistent) (Amit Kucheria)

    - Merge tsens-common into the tsens driver (Amit Kucheria)

    - Fix platform dependency for the Qoriq driver (Geert Uytterhoeven)

    - Clean up the rcar_thermal_update_temp() function in the rcar thermal
    driver (Niklas Söderlund)

    - Fix the TMSAR register for the TMUv2 on the Qoriq platform (Yuantian
    Tang)

    - Export GDDV, OEM vendor variables, and don't require IDSP for the
    int340x thermal driver - trivial conflicts fixed (Matthew Garrett)

    * tag 'thermal-v5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux: (48 commits)
    thermal/int340x_thermal: Don't require IDSP to exist
    thermal/int340x_thermal: Export OEM vendor variables
    thermal/int340x_thermal: Export GDDV
    thermal: qoriq: Update the settings for TMUv2
    thermal: rcar_thermal: Clean up rcar_thermal_update_temp()
    thermal: qoriq: Add platform dependencies
    drivers: thermal: tsens: Merge tsens-common.c into tsens.c
    thermal/of: Rename of-thermal.c
    thermal/governors: Prefix all source files with gov_
    thermal/drivers/user_space: Sort headers alphabetically
    thermal/drivers/of-thermal: Sort headers alphabetically
    thermal/drivers/cpufreq_cooling: Replace module.h with export.h
    thermal/drivers/cpufreq_cooling: Sort headers alphabetically
    thermal/drivers/clock_cooling: Include export.h
    thermal/drivers/clock_cooling: Sort headers alphabetically
    thermal/drivers/thermal_hwmon: Include export.h
    thermal/drivers/thermal_hwmon: Sort headers alphabetically
    thermal/drivers/thermal_helpers: Include export.h
    thermal/drivers/thermal_helpers: Sort headers alphabetically
    thermal/core: Replace module.h with export.h
    ...

    Linus Torvalds
     

25 May, 2020

1 commit

  • Remove unused PLATFORM_POWER_LIMIT MSR local definition from file
    intel_rapl_common.c. This was missed while splitting old RAPL code
    intel_rapl.c file into two new files intel_rapl_msr.c and
    intel_rapl_common.c as per the commit 3382388d7148
    ("intel_rapl: abstract RAPL common code"). Currently, this #define
    entry is being used only in intel_rapl_msr.c file and local definition
    present in this file.

    Signed-off-by: Sumeet Pawnikar
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Rafael J. Wysocki

    Sumeet Pawnikar
     

19 May, 2020

1 commit

  • Currently the idle injection framework uses the play_idle() function
    which puts the current CPU in an idle state. The idle state is the
    deepest one, as specified by the latency constraint when calling the
    subsequent play_idle_precise() function with the INT_MAX.

    The idle_injection is used by the cpuidle_cooling device which
    computes the idle / run duration to mitigate the temperature by
    injecting idle cycles. The cooling device has no control on the depth
    of the idle state.

    Allow finer control of the idle injection mechanism by allowing to
    specify the latency for the idle state. Thus the cooling device has
    the ability to have a guarantee on the exit latency of the idle states
    it is injecting.

    Acked-by: Rafael J. Wysocki
    Signed-off-by: Daniel Lezcano
    Reviewed-by: Amit Kucheria
    Link: https://lore.kernel.org/r/20200429103644.5492-1-daniel.lezcano@linaro.org

    Daniel Lezcano
     

16 May, 2020

1 commit


31 Mar, 2020

1 commit

  • Pull perf updates from Ingo Molnar:
    "The main changes in this cycle were:

    Kernel side changes:

    - A couple of x86/cpu cleanups and changes were grandfathered in due
    to patch dependencies. These clean up the set of CPU model/family
    matching macros with a consistent namespace and C99 initializer
    style.

    - A bunch of updates to various low level PMU drivers:
    * AMD Family 19h L3 uncore PMU
    * Intel Tiger Lake uncore support
    * misc fixes to LBR TOS sampling

    - optprobe fixes

    - perf/cgroup: optimize cgroup event sched-in processing

    - misc cleanups and fixes

    Tooling side changes are to:

    - perf {annotate,expr,record,report,stat,test}

    - perl scripting

    - libapi, libperf and libtraceevent

    - vendor events on Intel and S390, ARM cs-etm

    - Intel PT updates

    - Documentation changes and updates to core facilities

    - misc cleanups, fixes and other enhancements"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (89 commits)
    cpufreq/intel_pstate: Fix wrong macro conversion
    x86/cpu: Cleanup the now unused CPU match macros
    hwrng: via_rng: Convert to new X86 CPU match macros
    crypto: Convert to new CPU match macros
    ASoC: Intel: Convert to new X86 CPU match macros
    powercap/intel_rapl: Convert to new X86 CPU match macros
    PCI: intel-mid: Convert to new X86 CPU match macros
    mmc: sdhci-acpi: Convert to new X86 CPU match macros
    intel_idle: Convert to new X86 CPU match macros
    extcon: axp288: Convert to new X86 CPU match macros
    thermal: Convert to new X86 CPU match macros
    hwmon: Convert to new X86 CPU match macros
    platform/x86: Convert to new CPU match macros
    EDAC: Convert to new X86 CPU match macros
    cpufreq: Convert to new X86 CPU match macros
    ACPI: Convert to new X86 CPU match macros
    x86/platform: Convert to new CPU match macros
    x86/kernel: Convert to new CPU match macros
    x86/kvm: Convert to new CPU match macros
    x86/perf/events: Convert to new CPU match macros
    ...

    Linus Torvalds
     

25 Mar, 2020

1 commit

  • The new macro set has a consistent namespace and uses C99 initializers
    instead of the grufty C89 ones.

    Get rid the of the local macro wrappers for consistency.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Borislav Petkov
    Reviewed-by: Greg Kroah-Hartman
    Link: https://lkml.kernel.org/r/20200320131510.501728797@linutronix.de

    Thomas Gleixner
     

04 Mar, 2020

1 commit

  • The current codebase makes use of the zero-length array language
    extension to the C90 standard, but the preferred mechanism to declare
    variable-length types such as these ones is a flexible array member[1][2],
    introduced in C99:

    struct foo {
    int stuff;
    struct boo array[];
    };

    By making use of the mechanism above, we will get a compiler warning
    in case the flexible array does not occur last in the structure, which
    will help us prevent some kind of undefined behavior bugs from being
    inadvertently introduced[3] to the codebase from now on.

    Also, notice that, dynamic memory allocations won't be affected by
    this change:

    "Flexible array members have incomplete type, and so the sizeof operator
    may not be applied. As a quirk of the original implementation of
    zero-length arrays, sizeof evaluates to zero."[1]

    Lastly, fix the following checkpatch warning:
    WARNING: Prefer 'unsigned long' over 'unsigned long int' as the int is unnecessary
    + unsigned long int cpumask[];

    This issue was found with the help of Coccinelle.

    [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
    [2] https://github.com/KSPP/linux/issues/21
    [3] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

    Signed-off-by: Gustavo A. R. Silva
    Signed-off-by: Rafael J. Wysocki

    Gustavo A. R. Silva
     

13 Jan, 2020

1 commit


07 Jan, 2020

1 commit

  • RAPL MMIO support depends on the RAPL common driver. During CPU
    initialization rapl_mmio_cpu_online() is called via CPU hotplug
    to initialize the MMIO RAPL for the new CPU, but if that CPU is
    not present in the common RAPL driver's support list, rapl_defaults
    is NULL and the kernel crashes on an attempt to dereference it:

    [ 4.188566] BUG: kernel NULL pointer dereference, address: 0000000000000020
    ...snip...
    [ 4.189555] RIP: 0010:rapl_add_package+0x223/0x574
    [ 4.189555] Code: b5 a0 31 c0 49 8b 4d 78 48 01 d9 48 8b 0c c1 49 89 4c c6 10 48 ff c0 48 83 f8 05 75 e7 49 83 ff 03 75 15 48 8b 05 09 bc 18 01 70 20 41 89 b6 0c 05 00 00 85 f6 75 1a 49 81 c6 18 9
    [ 4.189555] RSP: 0000:ffffb3adc00b3d90 EFLAGS: 00010246
    [ 4.189555] RAX: 0000000000000000 RBX: 0000000000000098 RCX: 0000000000000000
    [ 4.267161] usb 1-1: New USB device found, idVendor=2109, idProduct=2812, bcdDevice= b.e0
    [ 4.189555] RDX: 0000000000001000 RSI: 0000000000000000 RDI: ffff9340caafd000
    [ 4.189555] RBP: ffffb3adc00b3df8 R08: ffffffffa0246e28 R09: ffff9340caafc000
    [ 4.189555] R10: 000000000000024a R11: ffffffff9ff1f6f2 R12: 00000000ffffffed
    [ 4.189555] R13: ffff9340caa94800 R14: ffff9340caafc518 R15: 0000000000000003
    [ 4.189555] FS: 0000000000000000(0000) GS:ffff9340ce200000(0000) knlGS:0000000000000000
    [ 4.189555] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 4.189555] CR2: 0000000000000020 CR3: 0000000302c14001 CR4: 00000000003606f0
    [ 4.189555] Call Trace:
    [ 4.189555] ? __switch_to_asm+0x40/0x70
    [ 4.189555] rapl_mmio_cpu_online+0x47/0x64
    [ 4.189555] ? rapl_mmio_write_raw+0x33/0x33
    [ 4.281059] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 4.189555] cpuhp_invoke_callback+0x29f/0x66f
    [ 4.189555] ? __schedule+0x46d/0x6a0
    [ 4.189555] cpuhp_thread_fun+0xb9/0x11c
    [ 4.189555] smpboot_thread_fn+0x17d/0x22f
    [ 4.297006] usb 1-1: Product: USB2.0 Hub
    [ 4.189555] ? cpu_report_death+0x43/0x43
    [ 4.189555] kthread+0x137/0x13f
    [ 4.189555] ? cpu_report_death+0x43/0x43
    [ 4.189555] ? kthread_blkcg+0x2e/0x2e
    [ 4.312951] usb 1-1: Manufacturer: VIA Labs, Inc.
    [ 4.189555] ret_from_fork+0x1f/0x40
    [ 4.189555] Modules linked in:
    [ 4.189555] CR2: 0000000000000020
    [ 4.189555] ---[ end trace 01bb812aabc791f4 ]---

    To avoid that problem, check rapl_defaults NULL upfront and return an
    error code if it is NULL. [Note that it does not make sense to even
    try to allocate memory in that case, because it is not going to be
    used anyway.]

    Fixes: 555c45fe0d04 ("int340X/processor_thermal_device: add support for MMIO RAPL")
    Cc: 5.3+ # 5.3+
    Signed-off-by: Harry Pan
    [ rjw: Subject & changelog ]
    Signed-off-by: Rafael J. Wysocki

    Harry Pan
     

20 Dec, 2019

1 commit


17 Dec, 2019

1 commit


04 Nov, 2019

2 commits


18 Sep, 2019

1 commit

  • Pull power management updates from Rafael Wysocki:
    "These include a rework of the main suspend-to-idle code flow (related
    to the handling of spurious wakeups), a switch over of several users
    of cpufreq notifiers to QoS-based limits, a new devfreq driver for
    Tegra20, a new cpuidle driver and governor for virtualized guests, an
    extension of the wakeup sources framework to expose wakeup sources as
    device objects in sysfs, and more.

    Specifics:

    - Rework the main suspend-to-idle control flow to avoid repeating
    "noirq" device resume and suspend operations in case of spurious
    wakeups from the ACPI EC and decouple the ACPI EC wakeups support
    from the LPS0 _DSM support (Rafael Wysocki).

    - Extend the wakeup sources framework to expose wakeup sources as
    device objects in sysfs (Tri Vo, Stephen Boyd).

    - Expose system suspend statistics in sysfs (Kalesh Singh).

    - Introduce a new haltpoll cpuidle driver and a new matching governor
    for virtualized guests wanting to do guest-side polling in the idle
    loop (Marcelo Tosatti, Joao Martins, Wanpeng Li, Stephen Rothwell).

    - Fix the menu and teo cpuidle governors to allow the scheduler tick
    to be stopped if PM QoS is used to limit the CPU idle state exit
    latency in some cases (Rafael Wysocki).

    - Increase the resolution of the play_idle() argument to microseconds
    for more fine-grained injection of CPU idle cycles (Daniel
    Lezcano).

    - Switch over some users of cpuidle notifiers to the new QoS-based
    frequency limits and drop the CPUFREQ_ADJUST and CPUFREQ_NOTIFY
    policy notifier events (Viresh Kumar).

    - Add new cpufreq driver based on nvmem for sun50i (Yangtao Li).

    - Add support for MT8183 and MT8516 to the mediatek cpufreq driver
    (Andrew-sh.Cheng, Fabien Parent).

    - Add i.MX8MN support to the imx-cpufreq-dt cpufreq driver (Anson
    Huang).

    - Add qcs404 to cpufreq-dt-platdev blacklist (Jorge Ramirez-Ortiz).

    - Update the qcom cpufreq driver (among other things, to make it
    easier to extend and to use kryo cpufreq for other nvmem-based
    SoCs) and add qcs404 support to it (Niklas Cassel, Douglas
    RAILLARD, Sibi Sankar, Sricharan R).

    - Fix assorted issues and make assorted minor improvements in the
    cpufreq code (Colin Ian King, Douglas RAILLARD, Florian Fainelli,
    Gustavo Silva, Hariprasad Kelam).

    - Add new devfreq driver for NVidia Tegra20 (Dmitry Osipenko, Arnd
    Bergmann).

    - Add new Exynos PPMU events to devfreq events and extend that
    mechanism (Lukasz Luba).

    - Fix and clean up the exynos-bus devfreq driver (Kamil Konieczny).

    - Improve devfreq documentation and governor code, fix spelling typos
    in devfreq (Ezequiel Garcia, Krzysztof Kozlowski, Leonard Crestez,
    MyungJoo Ham, Gaël PORTAY).

    - Add regulators enable and disable to the OPP (operating performance
    points) framework (Kamil Konieczny).

    - Update the OPP framework to support multiple opp-suspend properties
    (Anson Huang).

    - Fix assorted issues and make assorted minor improvements in the OPP
    code (Niklas Cassel, Viresh Kumar, Yue Hu).

    - Clean up the generic power domains (genpd) framework (Ulf Hansson).

    - Clean up assorted pieces of power management code and documentation
    (Akinobu Mita, Amit Kucheria, Chuhong Yuan).

    - Update the pm-graph tool to version 5.5 including multiple fixes
    and improvements (Todd Brandt).

    - Update the cpupower utility (Benjamin Weis, Geert Uytterhoeven,
    Sébastien Szymanski)"

    * tag 'pm-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (126 commits)
    cpuidle-haltpoll: Enable kvm guest polling when dedicated physical CPUs are available
    cpuidle-haltpoll: do not set an owner to allow modunload
    cpuidle-haltpoll: return -ENODEV on modinit failure
    cpuidle-haltpoll: set haltpoll as preferred governor
    cpuidle: allow governor switch on cpuidle_register_driver()
    PM: runtime: Documentation: add runtime_status ABI document
    pm-graph: make setVal unbuffered again for python2 and python3
    powercap: idle_inject: Use higher resolution for idle injection
    cpuidle: play_idle: Increase the resolution to usec
    cpuidle-haltpoll: vcpu hotplug support
    cpufreq: Add qcs404 to cpufreq-dt-platdev blacklist
    cpufreq: qcom: Add support for qcs404 on nvmem driver
    cpufreq: qcom: Refactor the driver to make it easier to extend
    cpufreq: qcom: Re-organise kryo cpufreq to use it for other nvmem based qcom socs
    dt-bindings: opp: Add qcom-opp bindings with properties needed for CPR
    dt-bindings: opp: qcom-nvmem: Support pstates provided by a power domain
    Documentation: cpufreq: Update policy notifier documentation
    cpufreq: Remove CPUFREQ_ADJUST and CPUFREQ_NOTIFY policy notifier events
    PM / Domains: Verify PM domain type in dev_pm_genpd_set_performance_state()
    PM / Domains: Simplify genpd_lookup_dev()
    ...

    Linus Torvalds
     

03 Sep, 2019

2 commits

  • The resolution of the idle injection is limited to 1ms. If there is
    a need for an injection of 1.2 ms, it is not possible.

    The idle injection API is not yet used, so it is safe to convert the
    existing API to the new time unit instead of adding more functions.

    Convert to microsecond in order to use a finer grain time unit when
    injecting idle cycles.

    Signed-off-by: Daniel Lezcano
    Signed-off-by: Rafael J. Wysocki

    Daniel Lezcano
     
  • The play_idle resolution is 1ms. The intel_powerclamp bases the idle
    duration on jiffies. The idle injection API is also using msec based
    duration but has no user yet.

    Unfortunately, msec based time does not fit well when we want to
    inject idle cycle precisely with shallow idle state.

    In order to set the scene for the incoming idle injection user, move
    the precision up to usec when calling play_idle.

    Signed-off-by: Daniel Lezcano
    Signed-off-by: Rafael J. Wysocki

    Daniel Lezcano
     

28 Aug, 2019

4 commits

  • Currently big microservers have _XEON_D while small microservers have
    _X, Make it uniformly: _D.

    for i in `git grep -l "\(INTEL_FAM6_\|VULNWL_INTEL\|INTEL_CPU_FAM6\).*_\(X\|XEON_D\)"`
    do
    sed -i -e 's/\(\(INTEL_FAM6_\|VULNWL_INTEL\|INTEL_CPU_FAM6\).*ATOM.*\)_X/\1_D/g' \
    -e 's/\(\(INTEL_FAM6_\|VULNWL_INTEL\|INTEL_CPU_FAM6\).*\)_XEON_D/\1_D/g' ${i}
    done

    Signed-off-by: Peter Zijlstra (Intel)
    Reviewed-by: Tony Luck
    Cc: x86@kernel.org
    Cc: Dave Hansen
    Cc: Thomas Gleixner
    Cc: Borislav Petkov
    Link: https://lkml.kernel.org/r/20190827195122.677152989@infradead.org

    Peter Zijlstra
     
  • Currently big core clients with extra graphics on have:

    - _G
    - _GT3E

    Make it uniformly: _G

    for i in `git grep -l "\(INTEL_FAM6_\|VULNWL_INTEL\|INTEL_CPU_FAM6\).*_GT3E"`
    do
    sed -i -e 's/\(\(INTEL_FAM6_\|VULNWL_INTEL\|INTEL_CPU_FAM6\).*\)_GT3E/\1_G/g' ${i}
    done

    Signed-off-by: Peter Zijlstra (Intel)
    Reviewed-by: Tony Luck
    Cc: x86@kernel.org
    Cc: Dave Hansen
    Cc: Thomas Gleixner
    Cc: Borislav Petkov
    Link: https://lkml.kernel.org/r/20190827195122.622802314@infradead.org

    Peter Zijlstra
     
  • Currently big core mobile chips have either:

    - _L
    - _ULT
    - _MOBILE

    Make it uniformly: _L.

    for i in `git grep -l "\(INTEL_FAM6_\|VULNWL_INTEL\|INTEL_CPU_FAM6\).*_\(MOBILE\|ULT\)"`
    do
    sed -i -e 's/\(\(INTEL_FAM6_\|VULNWL_INTEL\|INTEL_CPU_FAM6\).*\)_\(MOBILE\|ULT\)/\1_L/g' ${i}
    done

    Signed-off-by: Peter Zijlstra (Intel)
    Reviewed-by: Tony Luck
    Cc: x86@kernel.org
    Cc: Dave Hansen
    Cc: Borislav Petkov
    Cc: Thomas Gleixner
    Link: https://lkml.kernel.org/r/20190827195122.568978530@infradead.org

    Peter Zijlstra
     
  • Currently the big core client models either have:

    - no OPTDIFF
    - _CORE
    - _DESKTOP

    Make it uniformly: 'no OPTDIFF'.

    for i in `git grep -l "\(INTEL_FAM6_\|VULNWL_INTEL\|INTEL_CPU_FAM6\).*_\(CORE\|DESKTOP\)"`
    do
    sed -i -e 's/\(\(INTEL_FAM6_\|VULNWL_INTEL\|INTEL_CPU_FAM6\).*\)_\(CORE\|DESKTOP\)/\1/g' ${i}
    done

    Signed-off-by: Peter Zijlstra (Intel)
    Reviewed-by: Tony Luck
    Cc: x86@kernel.org
    Cc: Dave Hansen
    Cc: Borislav Petkov
    Cc: Thomas Gleixner
    Link: https://lkml.kernel.org/r/20190827195122.513945586@infradead.org

    Peter Zijlstra
     

22 Jul, 2019

1 commit

  • The MMIO RAPL interface driver depends on both powercap subsystem and
    the intel_rapl_common code.

    But when all of them are built-in, the MMIO RAPL interface driver can
    be loaded before the other two and this breaks the system during boot.

    Fix this by adjusting the init order of the powercap subsystem and the
    intel_rapl_common code, so that it can be initialized first.

    Fixes: 555c45fe0d04 ("int340X/processor_thermal_device: add support for MMIO RAPL")
    Reported-by: Kenneth R. Crudup
    Tested-by: Kenneth R. Crudup
    Signed-off-by: Zhang Rui
    [ rjw: Subject & changelog ]
    Signed-off-by: Rafael J. Wysocki

    Zhang Rui
     

11 Jul, 2019

1 commit