zx_system_get_performance_info

摘要

获取 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 表示要查询的项数。Topics 可能会对此值施加要求。

info 是指向足够大小的缓冲区的指针,以容纳该类型的 count 条目 由 topic 指定。如果系统调用返回错误,则存储在此数组中的值未定义。

成功后,系统会使用内核填充的信息条目数更新 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 resource 不是有效的句柄。

ZX_ERR_WRONG_TYPE 资源不是资源种类 ZX_RSRC_KIND_SYSTEM

ZX_ERR_ACCESS_DENIED 资源不在 [ZX_RSRC_SYSTEM_CPU_BASE, ZX_RSRC_SYSTEM_CPU_BASE+1] 范围内。

ZX_ERR_INVALID_ARGS topicinfooutput_count 包含无效值。

ZX_ERR_OUT_OF_RANGEcount 不符合主题的要求。

ZX_ERR_NO_MEMORY 因内存不足而失败。用户空间没有好办法处理这种(不太可能)错误。在将来的版本中,此错误不会再发生。

另请参阅