zx_system_set_performance_info

摘要

设置 CPU 性能参数。

声明

#include <zircon/syscalls.h>

zx_status_t zx_system_set_performance_info(zx_handle_t resource,
                                           uint32_t topic,
                                           const void* info,
                                           size_t count);

说明

zx_system_set_performance_info() 设置由内核维护的 CPU 性能参数。主题参数用于指明哪些具体参数受到影响。

count 表示要设置的项数。主题可能会对此值施加要求。

info 是一个指针,指向大小足以容纳 count 个由 topic 指定的类型的条目的缓冲区。

主题

ZX_CPU_PERF_SCALE

数量:必须不为零,且小于或等于系统中的逻辑 CPU 数量。

信息类型:zx_cpu_performance_scale_t[count]

一个 zx_cpu_performance_scale_t 数组,其中的条目用于指定系统中相应逻辑 CPU 的性能缩放比例(表示相对工作点的标量值)。只有数组中指定的 CPU 会更新,其他 CPU 不受影响。

逻辑 CPU 编号必须按升序存储在数组中。缩放值采用无符号定点 Q32.32 格式。缩放值应指示 CPU 的相对性能,其中 1.0 对应于系统中速度最快的 CPU 的最高运行点。

如需详细了解值和更新协议,请参阅 RFC 0123

ZX_CPU_PERF_LIMIT

数量:必须不为零,且小于或等于系统中的逻辑 CPU 数量。

信息类型:zx_cpu_perf_limit_t[count]

一个 zx_cpu_perf_limit_t 数组,其中的条目用于指定性能或功率限制。调度程序将使用这些值来限制每个受影响的处理器的性能或功耗。

权限

资源必须具有资源种类 ZX_RSRC_KIND_SYSTEM

返回值

zx_system_set_performance_info() 在成功时返回 ZX_OK。如果失败,则返回负错误值。

错误

ZX_ERR_BAD_HANDLE 资源不是有效的句柄。

ZX_ERR_WRONG_TYPE 资源不是资源种类 ZX_RSRC_KIND_SYSTEM

ZX_ERR_OUT_OF_RANGE resource 不在 [ZX_RSRC_SYSTEM_CPU_BASE, ZX_RSRC_SYSTEM_CPU_BASE+1) 范围内。

ZX_ERR_INVALID_ARGS topicinfo 具有无效值,或者 info 具有无序条目。

ZX_ERR_OUT_OF_RANGE countinfo 条目值不符合相应主题的要求。

ZX_ERR_NO_MEMORY 因内存不足而导致的失败。用户空间无法妥善处理此(不太可能发生的)错误。在未来的 build 中,此错误将不再发生。

另请参阅