| /linux/Documentation/devicetree/bindings/dvfs/ |
| H A D | performance-domain.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/dvfs/performance-domain.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Generic performance domains 10 - Sudeep Holla <sudeep.holla@arm.com> 13 This binding is intended for performance management of groups of devices or 14 CPUs that run in the same performance domain. Performance domains must not 15 be confused with power domains. A performance domain is defined by a set 16 of devices that always have to run at the same performance level. For a given [all …]
|
| /linux/Documentation/netlink/specs/ |
| H A D | dev-energymodel.yaml | 1 # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) 5 --- 6 name: dev-energymodel 13 uapi-header: linux/dev_energymodel.h 16 - 18 name: perf-state-flags 20 - 21 name: perf-state-inefficient 22 doc: >- 23 The performance state is inefficient. There is in this perf-domain, [all …]
|
| /linux/Documentation/devicetree/bindings/cpufreq/ |
| H A D | cpufreq-mediatek-hw.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/cpufreq/cpufreq-mediatek-hw.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Hector Yuan <hector.yuan@mediatek.com> 19 const: mediatek,cpufreq-hw 26 each frequency domain. Each entry corresponds to 27 a register bank for each frequency domain present. 29 "#performance-domain-cells": 31 Number of cells in a performance domain specifier. [all …]
|
| /linux/kernel/power/ |
| H A D | energy_model.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (c) 2018-2021, Arm ltd. 23 * Mutex serializing the registrations of performance domains and letting 29 * Manage performance domains with IDs. One can iterate the performance domains 46 return (dev->bus == &cpu_subsys); in _is_cpu_device() 60 struct em_dbg_info *em_dbg = s->private; \ 65 table = em_perf_state_from_pd(em_dbg->pd); \ 66 val = table[em_dbg->ps_id].name; \ 77 DEFINE_EM_DBG_SHOW(performance, performance); 99 /* Create per-ps directory */ in em_debug_create_ps() [all …]
|
| /linux/Documentation/driver-api/cxl/platform/acpi/ |
| H A D | srat.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 SRAT - Static Resource Affinity Table 9 performance information (see "HMAT") to be enumerated by linux it must be 13 created. If things don't look quite the way you expect - check the SRAT Memory 21 Proximity Domain 23 A proximity domain is ROUGHLY equivalent to "NUMA Node" - though a 1-to-1 24 mapping is not guaranteed. There are scenarios where "Proximity Domain 4" may 30 programming in BIOS - an SRAT entry for that memory needs to be present. 36 Proximity Domain : 00000001 <- NUMA Node 1 38 Base Address : 000000C050000000 <- Physical Memory Region [all …]
|
| /linux/drivers/acpi/ |
| H A D | processor_perflib.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * processor_perflib.c - ACPI Processor P-States Library ($Revision: 71 $) 9 * - Added processor hotplug support 26 #define ACPI_PROCESSOR_FILE_PERFORMANCE "performance" 39 * -1 -> cpufreq low level drivers not initialized -> _PSS, etc. not called yet 41 * 0 -> cpufreq low level drivers initialized -> consider _PPC values 42 * 1 -> ignore _PPC totally -> forced by user through boot param 44 static int ignore_ppc = -1; 60 return -EINVAL; in acpi_processor_get_platform_limit() 66 status = acpi_evaluate_integer(pr->handle, "_PPC", NULL, &ppc); in acpi_processor_get_platform_limit() [all …]
|
| H A D | processor_throttling.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * processor_throttling.c - Throttling submodule of the ACPI processor driver 9 * - Added processor hotplug support 29 * 0 -> acpi processor driver doesn't ignore _TPC values 30 * 1 -> acpi processor driver ignores _TPC values 38 int target_state; /* target T-state */ 65 return -ENOMEM; in acpi_processor_update_tsd_coord() 68 * Now that we have _TSD data from all CPUs, lets setup T-state in acpi_processor_update_tsd_coord() 76 /* Basic validity check for domain info */ in acpi_processor_update_tsd_coord() 77 pthrottling = &(pr->throttling); in acpi_processor_update_tsd_coord() [all …]
|
| /linux/Documentation/devicetree/bindings/power/ |
| H A D | power-domain.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/power/power-domain.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Rafael J. Wysocki <rafael@kernel.org> 11 - Kevin Hilman <khilman@kernel.org> 12 - Ulf Hansson <ulf.hansson@linaro.org> 18 capable of scaling performance for a group of IP blocks. 20 This device tree binding can be used to bind PM domain consumer devices with 21 their PM domains provided by PM domain providers. A PM domain provider can be [all …]
|
| /linux/Documentation/arch/powerpc/ |
| H A D | associativity.rst | 6 domains of substantially similar mean performance relative to resources outside 7 of that domain. Resources subsets of a given domain that exhibit better 8 performance relative to each other than relative to other resources subsets 9 are represented as being members of a sub-grouping domain. This performance 17 Hypervisor indicates the type/form of associativity used via "ibm,architecture-vec-5 property". 18 Bit 0 of byte 5 in the "ibm,architecture-vec-5" property indicates usage of Form 0 or Form 1. 20 bit 2 of byte 5 in the "ibm,architecture-vec-5" property is used. 23 ------ 27 ------ 28 With Form 1 a combination of ibm,associativity-reference-points, and ibm,associativity [all …]
|
| /linux/Documentation/admin-guide/pm/ |
| H A D | intel_uncore_frequency_scaling.rst | 1 .. SPDX-License-Identifier: GPL-2.0 8 :Copyright: |copy| 2022-2023 Intel Corporation 13 ------------ 17 performance, SoCs have internal algorithms for scaling uncore frequency. These 20 It is possible that users have different expectations of uncore performance and 22 the scaling min/max frequencies via cpufreq sysfs to improve CPU performance. 25 different core and uncore performance at distinct phases and they may want to 27 improve overall performance. 30 --------------- 45 This is a read-only attribute. If users adjust max_freq_khz, [all …]
|
| /linux/drivers/base/power/ |
| H A D | common.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * drivers/base/power/common.c - Common device power management code. 19 * dev_pm_get_subsys_data - Create or refcount power.subsys_data for device. 32 return -ENOMEM; in dev_pm_get_subsys_data() 34 spin_lock_irq(&dev->power.lock); in dev_pm_get_subsys_data() 36 if (dev->power.subsys_data) { in dev_pm_get_subsys_data() 37 dev->power.subsys_data->refcount++; in dev_pm_get_subsys_data() 39 spin_lock_init(&psd->lock); in dev_pm_get_subsys_data() 40 psd->refcount = 1; in dev_pm_get_subsys_data() 41 dev->power.subsys_data = psd; in dev_pm_get_subsys_data() [all …]
|
| /linux/drivers/cpufreq/ |
| H A D | scmi-cpufreq.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2018-2021 ARM Ltd. 11 #include <linux/clk-provider.h> 50 priv = policy->driver_data; in scmi_cpufreq_get_rate() 52 ret = perf_ops->freq_get(ph, priv->domain_id, &rate, false); in scmi_cpufreq_get_rate() 59 * perf_ops->freq_set is not a synchronous, the actual OPP change will 66 struct scmi_data *priv = policy->driver_data; in scmi_cpufreq_set_target() 67 u64 freq = policy->freq_table[index].frequency; in scmi_cpufreq_set_target() 69 return perf_ops->freq_set(ph, priv->domain_id, freq * 1000, false); in scmi_cpufreq_set_target() 75 struct scmi_data *priv = policy->driver_data; in scmi_cpufreq_fast_switch() [all …]
|
| /linux/drivers/pmdomain/arm/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 tristate "SCMI performance domain driver" 8 This enables support for the SCMI performance domains which can be 15 tristate "SCMI power domain driver" 28 tristate "SCPI power domain driver"
|
| H A D | scmi_perf_domain.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * SCMI performance domain support. 32 if (!pd->info->set_perf) in scmi_pd_set_perf_state() 36 return -EINVAL; in scmi_pd_set_perf_state() 38 ret = pd->perf_ops->level_set(pd->ph, pd->domain_id, state, false); in scmi_pd_set_perf_state() 40 dev_warn(&genpd->dev, "Failed with %d when trying to set %d perf level", in scmi_pd_set_perf_state() 54 * the performance level can be changed. in scmi_pd_attach_dev() 56 if (!pd->info->set_perf) in scmi_pd_attach_dev() 59 ret = pd->perf_ops->device_opps_add(pd->ph, dev, pd->domain_id); in scmi_pd_attach_dev() 71 if (!pd->info->set_perf) in scmi_pd_detach_dev() [all …]
|
| /linux/include/uapi/linux/ |
| H A D | isst_if.h | 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 16 * struct isst_if_platform_info - Define platform information 25 * @mmio_supported: Support of mmio interface for core-power feature 40 * struct isst_if_cpu_map - CPU mapping between logical and physical CPU 53 * struct isst_if_cpu_maps - structure for CPU map IOCTL 67 * struct isst_if_io_reg - Read write PUNIT IO register 84 * struct isst_if_io_regs - structure for IO register commands 99 * struct isst_if_mbox_cmd - Structure to define mail box command 121 * struct isst_if_mbox_cmds - structure for mailbox commands 136 * struct isst_if_msr_cmd - Structure to define msr command [all …]
|
| /linux/drivers/firmware/arm_scmi/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 9 set of operating system-independent software interfaces that are 11 interfaces for: Discovery and self-description of the interfaces 12 it supports, Power domain management which is the ability to place 13 a given device or domain into the various power-saving states that 14 it supports, Performance management which is the ability to control 15 the performance of a domain that is composed of compute engines 80 The framework allows the definition of platform-specific code quirks
|
| /linux/drivers/pmdomain/ |
| H A D | core.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * drivers/base/power/domain.c - Common code related to device power domains. 47 __routine = genpd->dev_ops.callback; \ 66 mutex_lock(&genpd->mlock); in genpd_lock_mtx() 72 mutex_lock_nested(&genpd->mlock, depth); in genpd_lock_nested_mtx() 77 return mutex_lock_interruptible(&genpd->mlock); in genpd_lock_interruptible_mtx() 82 return mutex_unlock(&genpd->mlock); in genpd_unlock_mtx() 93 __acquires(&genpd->slock) in genpd_lock_spin() 97 spin_lock_irqsave(&genpd->slock, flags); in genpd_lock_spin() 98 genpd->lock_flags = flags; in genpd_lock_spin() [all …]
|
| /linux/drivers/xen/ |
| H A D | xen-acpi-processor.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 * https://lore.kernel.org/lkml/1322673664-14642-6-git-send-email-konrad.wilk@oracle.com 35 * - as those shrink to nr_cpu_bits (which is dependent on possible_cpu), which 40 /* Mutex to protect the acpi_ids_done - for CPU hotplug use. */ 48 /* Which ACPI P-State dependencies for a enumerated processor */ 56 .u.set_pminfo.id = _pr->acpi_id, in push_cxx_to_hypervisor() 64 dst_cx_states = kzalloc_objs(struct xen_processor_cx, _pr->power.count); in push_cxx_to_hypervisor() 66 return -ENOMEM; in push_cxx_to_hypervisor() 68 for (ok = 0, i = 1; i <= _pr->power.count; i++) { in push_cxx_to_hypervisor() 69 cx = &_pr->power.states[i]; in push_cxx_to_hypervisor() [all …]
|
| /linux/arch/powerpc/perf/ |
| H A D | hv-gpci.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Hypervisor supplied "gpci" ("get performance counter info") performance 10 #define pr_fmt(fmt) "hv-gpci: " fmt 18 #include "hv-gpci.h" 19 #include "hv-common.h" 23 * perf stat -e 'hv_gpci/counter_info_version=3,offset=0,length=8, 34 * used depends on the event. See REQUEST_IDX_KIND in hv-gpci-requests.h 46 /* u8, bytes of data (1-8) */ 86 return -EIO; \ 117 AFFINITY_DOMAIN_VIA_VP, /* affinity domain via virtual processor */ [all …]
|
| /linux/Documentation/driver-api/cxl/platform/example-configurations/ |
| H A D | hb-interleave.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 Cross-Host-Bridge Interleave 11 * Cross-Bridge interleave is described. 14 * The HMAT describes a single node's performance. 55 Proximity Domain : 00000001 63 Non-Volatile : 0 69 Target Proximity Domain List : 00000000 70 Target Proximity Domain List : 00000001 71 Target Proximity Domain List : 00000002 77 Target Proximity Domain List : 00000000 [all …]
|
| /linux/Documentation/core-api/ |
| H A D | dma-attributes.rst | 6 defined in linux/dma-mapping.h. 9 ---------------------- 19 ---------------------- 22 buffered to improve performance. 29 -------------------------- 33 such mapping is non-trivial task and consumes very limited resources 47 ---------------------- 50 buffer from CPU domain to device domain. Some advanced use cases might 55 the buffer sharing. The first call transfers a buffer from 'CPU' domain 56 to 'device' domain, what synchronizes CPU caches for the given region [all …]
|
| /linux/include/linux/ |
| H A D | async.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * async.h: Asynchronous function calls for boot performance 24 * domain participates in global async_synchronize_full 31 * domain is free to go out of scope as soon as all pending work is 32 * complete, this domain does not participate in async_synchronize_full 42 struct async_domain *domain); 45 * async_schedule - schedule a function for asynchronous execution 50 * Note: This function may be called from atomic or non-atomic contexts. 58 * async_schedule_domain - schedule a function for asynchronous execution within a certain domain 61 * @domain: the domain [all …]
|
| /linux/Documentation/filesystems/smb/ |
| H A D | ksmbd.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 KSMBD - SMB3 Kernel Server 13 The subset of performance related operations belong in kernelspace and 15 performance in userspace. So, DCE/RPC management that has historically resulted 18 File operations that are related with performance (open/read/write/close etc.) 23 --------------------- 36 as workitems and to be executed in the handlers of the ksmbd-io kworker threads. 44 for each command which is further queued to be handled by ksmbd-io kworkers. 47 performance by handling client commands in parallel. 50 -------------------------------- [all …]
|
| /linux/drivers/sh/intc/ |
| H A D | irqdomain.c | 2 * IRQ domain support for SH INTC subsystem 18 * intc_irq_domain_evt_xlate() - Generic xlate for vectored IRQs. 32 return -EINVAL; in intc_evt_xlate() 52 irq_base = evt2irq(hw->vectors[0].vect); in intc_irq_domain_init() 53 irq_end = evt2irq(hw->vectors[hw->nr_vectors - 1].vect); in intc_irq_domain_init() 56 * Linear domains have a hard-wired assertion that IRQs start at in intc_irq_domain_init() 57 * 0 in order to make some performance optimizations. Lamely in intc_irq_domain_init() 59 * tree penalty for linear cases with non-zero hwirq bases. in intc_irq_domain_init() 61 if (irq_base == 0 && irq_end == (irq_base + hw->nr_vectors - 1)) in intc_irq_domain_init() 62 d->domain = irq_domain_create_linear(NULL, hw->nr_vectors, &intc_evt_ops, NULL); in intc_irq_domain_init() [all …]
|
| /linux/Documentation/power/ |
| H A D | opp.rst | 2 Operating Performance Points (OPP) Library 5 (C) 2009-2010 Nishanth Menon <nm@ti.com>, Texas Instruments Incorporated 19 1.1 What is an Operating Performance Point (OPP)? 20 ------------------------------------------------- 22 Complex SoCs of today consists of a multiple sub-modules working in conjunction. 25 facilitate this, sub-modules in a SoC are grouped into domains, allowing some 30 the device will support per domain are called Operating Performance Points or 41 - {300000000, 1000000} 42 - {800000000, 1200000} 43 - {1000000000, 1300000} [all …]
|