摘要
取得 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 項目。如果 syscall 傳回錯誤,儲存在這個陣列中的值將處於未定義狀態。
output_count 會更新為核心在成功時填入的資訊項目數量。如果 syscall 傳回錯誤,這個記憶體位置中儲存的值將處於未定義狀態。
主題
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
資源不是資源類型「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
因記憶體不足而失敗。使用者空間不容易處理這個錯誤 (極可能出現) 錯誤。日後的建構作業不會再發生這個錯誤。