| /kernel/linux/linux-5.10/drivers/base/power/ |
| D | qos.c | 3 * Devices PM QoS constraints management 8 * per-device PM QoS dependencies. It provides infrastructure for registration 11 * Dependents on a QoS value : register requests 12 * Watchers of QoS value : get notified when target QoS value changes 14 * This QoS design is best effort based. Dependents register their QoS needs. 15 * Watchers register to keep track of the current QoS needs of the system. 46 * __dev_pm_qos_flags - Check PM QoS flags for a given device. 47 * @dev: Device to check the PM QoS flags for. 54 struct dev_pm_qos *qos = dev->power.qos; in __dev_pm_qos_flags() local 60 if (IS_ERR_OR_NULL(qos)) in __dev_pm_qos_flags() [all …]
|
| D | qos-test.c | 11 struct freq_constraints qos; in freq_qos_test_min() local 15 freq_constraints_init(&qos); in freq_qos_test_min() 19 ret = freq_qos_add_request(&qos, &req1, FREQ_QOS_MIN, 1000); in freq_qos_test_min() 21 ret = freq_qos_add_request(&qos, &req2, FREQ_QOS_MIN, 2000); in freq_qos_test_min() 24 KUNIT_EXPECT_EQ(test, freq_qos_read_value(&qos, FREQ_QOS_MIN), 2000); in freq_qos_test_min() 28 KUNIT_EXPECT_EQ(test, freq_qos_read_value(&qos, FREQ_QOS_MIN), 1000); in freq_qos_test_min() 32 KUNIT_EXPECT_EQ(test, freq_qos_read_value(&qos, FREQ_QOS_MIN), in freq_qos_test_min() 39 struct freq_constraints qos; in freq_qos_test_maxdef() local 43 freq_constraints_init(&qos); in freq_qos_test_maxdef() 46 KUNIT_EXPECT_EQ(test, freq_qos_read_value(&qos, FREQ_QOS_MAX), in freq_qos_test_maxdef() [all …]
|
| /kernel/linux/linux-4.19/drivers/base/power/ |
| D | qos.c | 2 * Devices PM QoS constraints management 12 * per-device PM QoS dependencies. It provides infrastructure for registration 15 * Dependents on a QoS value : register requests 16 * Watchers of QoS value : get notified when target QoS value changes 18 * This QoS design is best effort based. Dependents register their QoS needs. 19 * Watchers register to keep track of the current QoS needs of the system. 50 * __dev_pm_qos_flags - Check PM QoS flags for a given device. 51 * @dev: Device to check the PM QoS flags for. 58 struct dev_pm_qos *qos = dev->power.qos; in __dev_pm_qos_flags() local 64 if (IS_ERR_OR_NULL(qos)) in __dev_pm_qos_flags() [all …]
|
| /kernel/linux/linux-5.10/kernel/power/ |
| D | qos.c | 3 * Power Management Quality of Service (PM QoS) support base. 11 * Provided here is an interface for specifying PM QoS dependencies. It allows 12 * entities depending on QoS constraints to register their requests which are 18 * global CPU latency QoS requests and frequency QoS requests are provided. 51 * @c: List of PM QoS constraint requests. 71 WARN(1, "Unknown PM QoS type in %s\n", __func__); in pm_qos_get_value() 82 * pm_qos_update_target - Update a list of PM QoS constraint requests. 83 * @c: List of PM QoS requests. 88 * Update the given list of PM QoS constraint requests, @c, by carrying an 149 * pm_qos_flags_remove_req - Remove device PM QoS flags request. [all …]
|
| /kernel/linux/linux-5.10/Documentation/power/ |
| D | pm_qos_interface.rst | 9 Two different PM QoS frameworks are available: 10 * CPU latency QoS. 11 * The per-device PM QoS framework provides the API to manage the 12 per-device latency constraints and PM QoS flags. 14 The latency unit used in the PM QoS framework is the microsecond (usec). 17 1. PM QoS framework 20 A global list of CPU latency QoS requests is maintained along with an aggregated 22 to the request list or elements of the list. For CPU latency QoS, the 32 Will insert an element into the CPU latency QoS list with the target value. 35 Clients of PM QoS need to save the returned handle for future use in other [all …]
|
| /kernel/linux/linux-5.10/net/atm/ |
| D | common.c | 104 return (vcc->qos.txtp.max_sdu + in vcc_writable() 159 vcc->qos.txtp.max_sdu = 1 << 16; /* for meta VCs */ in vcc_create() 324 walk->vci == vci && ((walk->qos.txtp.traffic_class != in check_ci() 325 ATM_NONE && vcc->qos.txtp.traffic_class != ATM_NONE) || in check_ci() 326 (walk->qos.rxtp.traffic_class != ATM_NONE && in check_ci() 327 vcc->qos.rxtp.traffic_class != ATM_NONE))) in check_ci() 408 switch (vcc->qos.aal) { in __vcc_connect() 419 vcc->qos.aal = ATM_AAL5; in __vcc_connect() 429 error = adjust_tp(&vcc->qos.txtp, vcc->qos.aal); in __vcc_connect() 431 error = adjust_tp(&vcc->qos.rxtp, vcc->qos.aal); in __vcc_connect() [all …]
|
| D | mpc.c | 171 * Functions for managing QoS list 177 struct atm_mpoa_qos *atm_mpoa_add_qos(__be32 dst_ip, struct atm_qos *qos) in atm_mpoa_add_qos() argument 183 entry->qos = *qos; in atm_mpoa_add_qos() 194 entry->qos = *qos; in atm_mpoa_add_qos() 204 struct atm_mpoa_qos *qos; in atm_mpoa_search_qos() local 206 qos = qos_head; in atm_mpoa_search_qos() 207 while (qos) { in atm_mpoa_search_qos() 208 if (qos->ipaddr == dst_ip) in atm_mpoa_search_qos() 210 qos = qos->next; in atm_mpoa_search_qos() 213 return qos; in atm_mpoa_search_qos() [all …]
|
| D | mpoa_proc.c | 249 struct atm_qos qos; in parse_qos() local 251 memset(&qos, 0, sizeof(struct atm_qos)); in parse_qos() 268 qos.txtp.traffic_class = ATM_CBR; in parse_qos() 269 qos.txtp.max_pcr = tx_pcr; in parse_qos() 270 qos.txtp.max_sdu = tx_sdu; in parse_qos() 271 qos.rxtp.traffic_class = ATM_CBR; in parse_qos() 272 qos.rxtp.max_pcr = rx_pcr; in parse_qos() 273 qos.rxtp.max_sdu = rx_sdu; in parse_qos() 274 qos.aal = ATM_AAL5; in parse_qos() 275 dprintk("parse_qos(): setting qos parameters to tx=%d,%d rx=%d,%d\n", in parse_qos() [all …]
|
| D | mpoa_caches.c | 135 struct atm_mpoa_qos *qos; in cache_hit() local 147 qos = atm_mpoa_search_qos(entry->ctrl_info.in_dst_ip); in cache_hit() 148 if (qos != NULL) in cache_hit() 149 msg.qos = qos->qos; in cache_hit() 170 qos = atm_mpoa_search_qos(entry->ctrl_info.in_dst_ip); in cache_hit() 171 if (qos != NULL) in cache_hit() 172 msg.qos = qos->qos; in cache_hit() 252 struct atm_mpoa_qos *qos; in check_resolving_entries() local 286 qos = atm_mpoa_search_qos(entry->ctrl_info.in_dst_ip); in check_resolving_entries() 287 if (qos != NULL) in check_resolving_entries() [all …]
|
| /kernel/linux/linux-4.19/net/atm/ |
| D | common.c | 103 return (vcc->qos.txtp.max_sdu + in vcc_writable() 158 vcc->qos.txtp.max_sdu = 1 << 16; /* for meta VCs */ in vcc_create() 323 walk->vci == vci && ((walk->qos.txtp.traffic_class != in check_ci() 324 ATM_NONE && vcc->qos.txtp.traffic_class != ATM_NONE) || in check_ci() 325 (walk->qos.rxtp.traffic_class != ATM_NONE && in check_ci() 326 vcc->qos.rxtp.traffic_class != ATM_NONE))) in check_ci() 407 switch (vcc->qos.aal) { in __vcc_connect() 418 vcc->qos.aal = ATM_AAL5; in __vcc_connect() 428 error = adjust_tp(&vcc->qos.txtp, vcc->qos.aal); in __vcc_connect() 430 error = adjust_tp(&vcc->qos.rxtp, vcc->qos.aal); in __vcc_connect() [all …]
|
| D | mpc.c | 170 * Functions for managing QoS list 176 struct atm_mpoa_qos *atm_mpoa_add_qos(__be32 dst_ip, struct atm_qos *qos) in atm_mpoa_add_qos() argument 182 entry->qos = *qos; in atm_mpoa_add_qos() 193 entry->qos = *qos; in atm_mpoa_add_qos() 203 struct atm_mpoa_qos *qos; in atm_mpoa_search_qos() local 205 qos = qos_head; in atm_mpoa_search_qos() 206 while (qos) { in atm_mpoa_search_qos() 207 if (qos->ipaddr == dst_ip) in atm_mpoa_search_qos() 209 qos = qos->next; in atm_mpoa_search_qos() 212 return qos; in atm_mpoa_search_qos() [all …]
|
| D | mpoa_proc.c | 252 struct atm_qos qos; in parse_qos() local 254 memset(&qos, 0, sizeof(struct atm_qos)); in parse_qos() 271 qos.txtp.traffic_class = ATM_CBR; in parse_qos() 272 qos.txtp.max_pcr = tx_pcr; in parse_qos() 273 qos.txtp.max_sdu = tx_sdu; in parse_qos() 274 qos.rxtp.traffic_class = ATM_CBR; in parse_qos() 275 qos.rxtp.max_pcr = rx_pcr; in parse_qos() 276 qos.rxtp.max_sdu = rx_sdu; in parse_qos() 277 qos.aal = ATM_AAL5; in parse_qos() 278 dprintk("parse_qos(): setting qos parameters to tx=%d,%d rx=%d,%d\n", in parse_qos() [all …]
|
| D | mpoa_caches.c | 135 struct atm_mpoa_qos *qos; in cache_hit() local 147 qos = atm_mpoa_search_qos(entry->ctrl_info.in_dst_ip); in cache_hit() 148 if (qos != NULL) in cache_hit() 149 msg.qos = qos->qos; in cache_hit() 170 qos = atm_mpoa_search_qos(entry->ctrl_info.in_dst_ip); in cache_hit() 171 if (qos != NULL) in cache_hit() 172 msg.qos = qos->qos; in cache_hit() 253 struct atm_mpoa_qos *qos; in check_resolving_entries() local 287 qos = atm_mpoa_search_qos(entry->ctrl_info.in_dst_ip); in check_resolving_entries() 288 if (qos != NULL) in check_resolving_entries() [all …]
|
| /kernel/linux/linux-4.19/Documentation/power/ |
| D | pm_qos_interface.txt | 7 Two different PM QoS frameworks are available: 8 1. PM QoS classes for cpu_dma_latency, network_latency, network_throughput, 10 2. the per-device PM QoS framework provides the API to manage the per-device latency 11 constraints and PM QoS flags. 20 1. PM QoS framework 40 Will insert an element into the list for that identified PM QoS class with the 57 Returns the aggregated value for a given PM QoS class. 61 PM QoS class constraints list. 64 Adds a notification callback function to the PM QoS class. The callback is 65 called when the aggregated value for the PM QoS class is changed. [all …]
|
| /kernel/linux/linux-4.19/kernel/power/ |
| D | qos.c | 3 * QoS dependencies. It provides infrastructure for registration of: 5 * Dependents on a QoS value : register requests 6 * Watchers of QoS value : get notified when target QoS value changes 8 * This QoS design is best effort based. Dependents register their QoS needs. 9 * Watchers register to keep track of the current QoS needs of the system. 11 * There are 3 basic classes of QoS parameter: latency, timeout, throughput 19 * User mode requests on a QOS parameter register themselves to the 23 * request is removed and a new qos target is computed. This way when the 189 struct pm_qos_object *qos = (struct pm_qos_object *)s->private; in pm_qos_dbg_show_requests() local 197 if (IS_ERR_OR_NULL(qos)) { in pm_qos_dbg_show_requests() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ethernet/ti/ |
| D | am65-cpsw-qos.c | 2 /* Texas Instruments K3 AM65 Ethernet QoS submodule 13 #include "am65-cpsw-qos.h" 58 return port->qos.est_oper || port->qos.est_admin; in am65_cpsw_port_est_enabled() 167 if (port->qos.est_oper) in am65_cpsw_admin_to_oper() 168 devm_kfree(&ndev->dev, port->qos.est_oper); in am65_cpsw_admin_to_oper() 170 port->qos.est_oper = port->qos.est_admin; in am65_cpsw_admin_to_oper() 171 port->qos.est_admin = NULL; in am65_cpsw_admin_to_oper() 187 if (port->qos.est_oper && port->qos.est_admin && in am65_cpsw_port_est_get_buf_num() 188 est_new->buf == port->qos.est_oper->buf) in am65_cpsw_port_est_get_buf_num() 217 if (!port->qos.est_admin) in am65_cpsw_est_update_state() [all …]
|
| /kernel/linux/linux-5.10/drivers/staging/octeon/ |
| D | ethernet-tx.c | 75 int qos, queues_per_port; in cvm_oct_free_tx_skbs() local 83 for (qos = 0; qos < queues_per_port; qos++) { in cvm_oct_free_tx_skbs() 84 if (skb_queue_len(&priv->tx_free_list[qos]) == 0) in cvm_oct_free_tx_skbs() 86 skb_to_free = cvmx_fau_fetch_and_add32(priv->fau + qos * 4, in cvm_oct_free_tx_skbs() 89 priv->fau + qos * 4); in cvm_oct_free_tx_skbs() 94 spin_lock_irqsave(&priv->tx_free_list[qos].lock, flags); in cvm_oct_free_tx_skbs() 98 t = __skb_dequeue(&priv->tx_free_list[qos]); in cvm_oct_free_tx_skbs() 103 spin_unlock_irqrestore(&priv->tx_free_list[qos].lock, in cvm_oct_free_tx_skbs() 113 total_remaining += skb_queue_len(&priv->tx_free_list[qos]); in cvm_oct_free_tx_skbs() 134 int qos; in cvm_oct_xmit() local [all …]
|
| /kernel/linux/linux-4.19/drivers/staging/octeon/ |
| D | ethernet-tx.c | 85 int qos, queues_per_port; in cvm_oct_free_tx_skbs() local 93 for (qos = 0; qos < queues_per_port; qos++) { in cvm_oct_free_tx_skbs() 94 if (skb_queue_len(&priv->tx_free_list[qos]) == 0) in cvm_oct_free_tx_skbs() 96 skb_to_free = cvmx_fau_fetch_and_add32(priv->fau + qos * 4, in cvm_oct_free_tx_skbs() 99 priv->fau + qos * 4); in cvm_oct_free_tx_skbs() 104 spin_lock_irqsave(&priv->tx_free_list[qos].lock, flags); in cvm_oct_free_tx_skbs() 108 t = __skb_dequeue(&priv->tx_free_list[qos]); in cvm_oct_free_tx_skbs() 113 spin_unlock_irqrestore(&priv->tx_free_list[qos].lock, in cvm_oct_free_tx_skbs() 123 total_remaining += skb_queue_len(&priv->tx_free_list[qos]); in cvm_oct_free_tx_skbs() 144 int qos; in cvm_oct_xmit() local [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/net/ |
| D | snps,dwc-qos-ethernet.txt | 1 * Synopsys DWC Ethernet QoS IP version 4.10 driver (GMAC) 6 This binding supports the Synopsys Designware Ethernet QoS (Quality Of Service) 14 - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10" 16 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10" 18 - "snps,dwc-qos-ethernet-4.10" 20 "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10". It is supported to be 72 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10": 78 - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10": 83 - "snps,dwc-qos-ethernet-4.10" (deprecated): 97 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10": [all …]
|
| /kernel/linux/linux-4.19/Documentation/devicetree/bindings/net/ |
| D | snps,dwc-qos-ethernet.txt | 1 * Synopsys DWC Ethernet QoS IP version 4.10 driver (GMAC) 6 This binding supports the Synopsys Designware Ethernet QoS (Quality Of Service) 14 - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10" 16 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10" 18 - "snps,dwc-qos-ethernet-4.10" 20 "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10". It is supported to be 72 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10": 78 - "axis,artpec6-eqos", "snps,dwc-qos-ethernet-4.10": 83 - "snps,dwc-qos-ethernet-4.10" (deprecated): 97 - "nvidia,tegra186-eqos", "snps,dwc-qos-ethernet-4.10": [all …]
|
| /kernel/linux/linux-5.10/Documentation/trace/ |
| D | events-power.rst | 72 4. PM QoS events 74 The PM QoS events are used for QoS add/update/remove request and for 81 The first parameter gives the QoS action name (e.g. "ADD_REQ"). 82 The second parameter is the previous QoS value. 83 The third parameter is the current QoS value to update. 85 There are also events used for device PM QoS add/update/remove request. 93 QoS requests. 97 And, there are events used for CPU latency QoS add/update/remove request.
|
| /kernel/linux/linux-4.19/Documentation/trace/ |
| D | events-power.rst | 72 4. PM QoS events 74 The PM QoS events are used for QoS add/update/remove request and for 83 The first parameter gives the QoS class name (e.g. "CPU_DMA_LATENCY"). 91 The first parameter gives the QoS action name (e.g. "ADD_REQ"). 92 The second parameter is the previous QoS value. 93 The third parameter is the current QoS value to update. 95 And, there are also events used for device PM QoS add/update/remove request. 103 QoS requests.
|
| /kernel/linux/linux-5.10/include/linux/ |
| D | pm_qos.h | 3 * Definitions related to Power Management Quality of Service (PM QoS). 63 struct pm_qos_constraints *qos; member 95 struct freq_constraints *qos; member 197 return dev->power.qos->resume_latency_req->data.pnode.prio; in dev_pm_qos_requested_resume_latency() 202 return dev->power.qos->flags_req->data.flr.flags; in dev_pm_qos_requested_flags() 207 return IS_ERR_OR_NULL(dev->power.qos) ? in dev_pm_qos_raw_resume_latency() 209 pm_qos_read_value(&dev->power.qos->resume_latency); in dev_pm_qos_raw_resume_latency() 296 return !IS_ERR_OR_NULL(req->qos); in freq_qos_request_active() 299 void freq_constraints_init(struct freq_constraints *qos); 301 s32 freq_qos_read_value(struct freq_constraints *qos, [all …]
|
| /kernel/linux/linux-4.19/arch/mips/include/asm/octeon/ |
| D | cvmx-pip.h | 267 uint64_t qos:3; member 306 * Configure the global QoS packet watchers. Each watcher is 308 * QoS queue for scheduling. 314 * @qos: QoS queue for packets matching this watcher 318 uint64_t match_value, uint64_t qos) 325 watcher_config.s.qos = qos; 331 * Configure the VLAN priority to QoS queue mapping. 335 * @qos: QoS queue for packets matching this watcher 338 uint64_t qos) in cvmx_pip_config_vlan_qos() argument 342 pip_qos_vlanx.s.qos = qos; in cvmx_pip_config_vlan_qos() [all …]
|
| /kernel/linux/linux-5.10/arch/mips/include/asm/octeon/ |
| D | cvmx-pip.h | 267 uint64_t qos:3; member 306 * Configure the global QoS packet watchers. Each watcher is 308 * QoS queue for scheduling. 314 * @qos: QoS queue for packets matching this watcher 318 uint64_t match_value, uint64_t qos) 325 watcher_config.s.qos = qos; 331 * Configure the VLAN priority to QoS queue mapping. 335 * @qos: QoS queue for packets matching this watcher 338 uint64_t qos) in cvmx_pip_config_vlan_qos() argument 342 pip_qos_vlanx.s.qos = qos; in cvmx_pip_config_vlan_qos() [all …]
|