总结
获取 CPU 性能参数。
声明
#include <zircon/syscalls.h>
zx_status_t zx_system_get_performance_info(zx_handle_t resource,
uint32_t topic,
size_t count,
void* info,
size_t* output_count);
说明
zx_system_get_performance_info()
用于请求内核维护的 CPU 性能参数。topic 参数指示需要哪些特定信息。
count 表示要查询的项目的数量。主题可能会对此值施加要求。
info 是指向足够大的缓冲区的指针,可容纳 topic 指定的类型的 count 条目。如果系统调用返回错误,则此数组中存储的值将未定义。
如果成功,output_count 会用内核填充的信息条目数量进行更新。如果系统调用返回错误,则此内存位置中存储的值未定义。
主题
ZX_CPU_PERF_SCALE
count:必须等于系统中的逻辑 CPU 数量。
info 类型:zx_cpu_performance_scale_t[count]
返回一个 zx_cpu_performance_scale_t
数组,其中的条目表示系统中每个逻辑 CPU 的当前性能比例(标量值表示相对操作点)。这些值反映的是最近一次对 zx_system_set_performance_info
的调用,即使这些值尚未生效也是如此。
请参阅 RFC 0123,详细了解值和更新协议。
ZX_CPU_DEFAULT_PERF_SCALE
count:必须等于系统中的逻辑 CPU 数量。
info 类型:zx_cpu_performance_scale_t[count]
返回一个 zx_cpu_performance_scale_t
数组,其中包含的条目表示在系统中的每个逻辑 CPU 启动期间使用的默认性能尺度。
如需了解详情,请参阅 RFC 0123。
权限
resource 必须具有资源种类 ZX_RSRC_KIND_SYSTEM
。
返回值
zx_system_get_performance_info()
会在成功时返回 ZX_OK
。如果失败,则返回负错误值。
错误
ZX_ERR_BAD_HANDLE
资源不是有效的句柄。
ZX_ERR_WRONG_TYPE
resource 不是资源种类 ZX_RSRC_KIND_SYSTEM
。
ZX_ERR_ACCESS_DENIED
资源不在 [ZX_RSRC_SYSTEM_CPU_BASE
, ZX_RSRC_SYSTEM_CPU_BASE
+1) 范围内。
ZX_ERR_INVALID_ARGS
topic、info 或 output_count 包含无效值。
ZX_ERR_OUT_OF_RANGE
count 不符合主题的要求。
ZX_ERR_NO_MEMORY
:因内存不足而失败。用户空间没有什么方法来处理此(不太可能)错误。在以后的 build 中,此错误不会再发生。