摘要
設定 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 效能參數。topic 參數會指出受影響的特定參數。
count 表示要設定的項目數量。主題可能會對這個值設下限制。
info 是緩衝區的指標,大小足以容納 count 個 topic 指定的類型項目。
主題
ZX_CPU_PERF_SCALE
count:必須大於零,且小於或等於系統中的邏輯 CPU 數量。
info 類型: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
count:必須大於零,且小於或等於系統中的邏輯 CPU 數量。
info 類型:zx_cpu_perf_limit_t[count]
zx_cpu_perf_limit_t 陣列,其中包含指定效能或電力限制的項目。排程器會使用這些值,限制每個受影響處理器的效能或耗電量。
權限
resource 必須具有資源種類 ZX_RSRC_KIND_SYSTEM。
傳回值
zx_system_set_performance_info() 會在成功時傳回 ZX_OK。如果失敗,系統會傳回負數錯誤值。
錯誤
ZX_ERR_BAD_HANDLE resource 不是有效的控制代碼。
ZX_ERR_WRONG_TYPE「resource」不是資源種類「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 topic 或 info 的值無效,或 info 的項目順序有誤。
ZX_ERR_OUT_OF_RANGE count 或 info 項目的值不符合主題規定。
ZX_ERR_NO_MEMORY 記憶體不足,導致失敗。使用者空間無法妥善處理這項 (不太可能發生的) 錯誤。日後建構版本將不會再發生這個錯誤。