|
1 | 1 | // SPDX-License-Identifier: GPL-2.0-only
|
2 | 2 | /*
|
3 |
| - * This module exposes the interface to kernel space for specifying |
4 |
| - * QoS dependencies. It provides infrastructure for registration of: |
| 3 | + * Power Management Quality of Service (PM QoS) support base. |
5 | 4 | *
|
6 |
| - * Dependents on a QoS value : register requests |
7 |
| - * Watchers of QoS value : get notified when target QoS value changes |
| 5 | + * Copyright (C) 2020 Intel Corporation |
8 | 6 | *
|
9 |
| - * This QoS design is best effort based. Dependents register their QoS needs. |
10 |
| - * Watchers register to keep track of the current QoS needs of the system. |
| 7 | + * Authors: |
| 8 | + |
| 9 | + * Rafael J. Wysocki <[email protected]> |
11 | 10 | *
|
12 |
| - * There are 3 basic classes of QoS parameter: latency, timeout, throughput |
13 |
| - * each have defined units: |
14 |
| - * latency: usec |
15 |
| - * timeout: usec <-- currently not used. |
16 |
| - * throughput: kbs (kilo byte / sec) |
| 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 |
| 13 | + * aggregated as appropriate to produce effective constraints (target values) |
| 14 | + * that can be monitored by entities needing to respect them, either by polling |
| 15 | + * or through a built-in notification mechanism. |
17 | 16 | *
|
18 |
| - * There are lists of pm_qos_objects each one wrapping requests, notifiers |
19 |
| - * |
20 |
| - * User mode requests on a QOS parameter register themselves to the |
21 |
| - * subsystem by opening the device node /dev/... and writing there request to |
22 |
| - * the node. As long as the process holds a file handle open to the node the |
23 |
| - * client continues to be accounted for. Upon file release the usermode |
24 |
| - * request is removed and a new qos target is computed. This way when the |
25 |
| - * request that the application has is cleaned up when closes the file |
26 |
| - * pointer or exits the pm_qos_object will get an opportunity to clean up. |
27 |
| - * |
28 |
| - |
| 17 | + * In addition to the basic functionality, more specific interfaces for managing |
| 18 | + * global CPU latency QoS requests and frequency QoS requests are provided. |
29 | 19 | */
|
30 | 20 |
|
31 | 21 | /*#define DEBUG*/
|
|
0 commit comments