1 .. SPDX-License-Identifier: GPL-2.0 1 .. SPDX-License-Identifier: GPL-2.0 2 2 3 .. include:: ../disclaimer-zh_TW.rst 3 .. include:: ../disclaimer-zh_TW.rst 4 4 5 :Original: Documentation/cpu-freq/cpufreq-stat 5 :Original: Documentation/cpu-freq/cpufreq-stats.rst 6 6 7 :翻譯: 7 :翻譯: 8 8 9 司延騰 Yanteng Si <siyanteng@loongson.cn> 9 司延騰 Yanteng Si <siyanteng@loongson.cn> 10 10 11 :校譯: 11 :校譯: 12 12 13 唐藝舟 Tang Yizhou <tangyeechou@gmail.com> 13 唐藝舟 Tang Yizhou <tangyeechou@gmail.com> 14 14 15 ========================================== 15 ========================================== 16 sysfs CPUFreq Stats的一般說明 16 sysfs CPUFreq Stats的一般說明 17 ========================================== 17 ========================================== 18 18 19 爲使用者準備的信息 19 爲使用者準備的信息 20 20 21 21 22 作者: Venkatesh Pallipadi <venkatesh.pallipad 22 作者: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> 23 23 24 .. Contents 24 .. Contents 25 25 26 1. 簡介 26 1. 簡介 27 2. 提供的統計數據(舉例說明) 27 2. 提供的統計數據(舉例說明) 28 3. 配置cpufreq-stats 28 3. 配置cpufreq-stats 29 29 30 30 31 1. 簡介 31 1. 簡介 32 =============== 32 =============== 33 33 34 cpufreq-stats是一種爲每個CPU提供CPU頻 34 cpufreq-stats是一種爲每個CPU提供CPU頻率統計的驅動。 35 這些統計數據以/sysfs中一系列只讀 35 這些統計數據以/sysfs中一系列只讀接口的形式呈現。cpufreq-stats接口(若已配置)將爲每個CPU生成 36 /sysfs(<sysfs root>/devices/system/cpu/cpuX/ 36 /sysfs(<sysfs root>/devices/system/cpu/cpuX/cpufreq/stats/)中cpufreq目錄下的stats目錄。 37 各項統計數據將在stats目錄下形成 37 各項統計數據將在stats目錄下形成對應的只讀文件。 38 38 39 此驅動是以獨立於任何可能運行在 39 此驅動是以獨立於任何可能運行在你所用CPU上的特定cpufreq_driver的方式設計的。因此,它將能和任何 40 cpufreq_driver協同工作。 40 cpufreq_driver協同工作。 41 41 42 42 43 2. 已提供的統計數據(有例子) 43 2. 已提供的統計數據(有例子) 44 ===================================== 44 ===================================== 45 45 46 cpufreq stats提供了以下統計數據(在 46 cpufreq stats提供了以下統計數據(在下面詳細解釋)。 47 47 48 - time_in_state 48 - time_in_state 49 - total_trans 49 - total_trans 50 - trans_table 50 - trans_table 51 51 52 所有統計數據來自以下時間範圍: 52 所有統計數據來自以下時間範圍:從統計驅動被加載的時間(或統計數據被重置的時間)開始,到某一統計數據被讀取的時間爲止。 53 顯然,統計驅動不會保存它被加載 53 顯然,統計驅動不會保存它被加載之前的任何頻率轉換信息。 54 54 55 :: 55 :: 56 56 57 <mysystem>:/sys/devices/system/cpu/cpu0/cp 57 <mysystem>:/sys/devices/system/cpu/cpu0/cpufreq/stats # ls -l 58 total 0 58 total 0 59 drwxr-xr-x 2 root root 0 May 14 16:06 59 drwxr-xr-x 2 root root 0 May 14 16:06 . 60 drwxr-xr-x 3 root root 0 May 14 15:58 60 drwxr-xr-x 3 root root 0 May 14 15:58 .. 61 --w------- 1 root root 4096 May 14 16:06 61 --w------- 1 root root 4096 May 14 16:06 reset 62 -r--r--r-- 1 root root 4096 May 14 16:06 62 -r--r--r-- 1 root root 4096 May 14 16:06 time_in_state 63 -r--r--r-- 1 root root 4096 May 14 16:06 63 -r--r--r-- 1 root root 4096 May 14 16:06 total_trans 64 -r--r--r-- 1 root root 4096 May 14 16:06 64 -r--r--r-- 1 root root 4096 May 14 16:06 trans_table 65 65 66 - **reset** 66 - **reset** 67 67 68 只寫屬性,可用於重置統計計數器 68 只寫屬性,可用於重置統計計數器。這對於評估不同調節器的系統行爲非常有用,且無需重啓。 69 69 70 70 71 - **time_in_state** 71 - **time_in_state** 72 72 73 此文件給出了在本CPU支持的每個頻 73 此文件給出了在本CPU支持的每個頻率上分別花費的時間。cat輸出的每一行都是一個"<frequency> 74 <time>"對,表示這個CPU在<frequency>上 74 <time>"對,表示這個CPU在<frequency>上花費了<time>個usertime單位的時間。輸出的每一行對應 75 一個CPU支持的頻率。這裏usertime單 75 一個CPU支持的頻率。這裏usertime單位是10mS(類似於/proc導出的其它時間)。 76 76 77 :: 77 :: 78 78 79 <mysystem>:/sys/devices/system/cpu/cpu0/cp 79 <mysystem>:/sys/devices/system/cpu/cpu0/cpufreq/stats # cat time_in_state 80 3600000 2089 80 3600000 2089 81 3400000 136 81 3400000 136 82 3200000 34 82 3200000 34 83 3000000 67 83 3000000 67 84 2800000 172488 84 2800000 172488 85 85 86 86 87 - **total_trans** 87 - **total_trans** 88 88 89 此文件給出了這個CPU頻率轉換的總 89 此文件給出了這個CPU頻率轉換的總次數。cat的輸出是一個計數值,它就是頻率轉換的總次數。 90 90 91 :: 91 :: 92 92 93 <mysystem>:/sys/devices/system/cpu/cpu0/cp 93 <mysystem>:/sys/devices/system/cpu/cpu0/cpufreq/stats # cat total_trans 94 20 94 20 95 95 96 - **trans_table** 96 - **trans_table** 97 97 98 本文件提供所有CPU頻率轉換的細粒 98 本文件提供所有CPU頻率轉換的細粒度信息。這裏的cat輸出是一個二維矩陣,其中一個條目<i, j>(第 99 i行,第j列)代表從Freq_i到Freq_j的 99 i行,第j列)代表從Freq_i到Freq_j的轉換次數。Freq_i行和Freq_j列遵循驅動最初提供給cpufreq 100 核心的頻率表的排列順序,因此可 100 核心的頻率表的排列順序,因此可以已排序(升序或降序)或未排序。這裏的輸出也包含了實際 101 頻率值,分別按行和按列顯示,以 101 頻率值,分別按行和按列顯示,以便更好地閱讀。 102 102 103 如果轉換表大於PAGE_SIZE,讀取時將 103 如果轉換表大於PAGE_SIZE,讀取時將返回一個-EFBIG錯誤。 104 104 105 :: 105 :: 106 106 107 <mysystem>:/sys/devices/system/cpu/cpu0/cp 107 <mysystem>:/sys/devices/system/cpu/cpu0/cpufreq/stats # cat trans_table 108 From : To 108 From : To 109 : 3600000 3400000 3200000 109 : 3600000 3400000 3200000 3000000 2800000 110 3600000: 0 5 0 110 3600000: 0 5 0 0 0 111 3400000: 4 0 2 111 3400000: 4 0 2 0 0 112 3200000: 0 1 0 112 3200000: 0 1 0 2 0 113 3000000: 0 0 1 113 3000000: 0 0 1 0 3 114 2800000: 0 0 0 114 2800000: 0 0 0 2 0 115 115 116 3. 配置cpufreq-stats 116 3. 配置cpufreq-stats 117 ============================ 117 ============================ 118 118 119 按以下方式在你的內核中配置cpufreq 119 按以下方式在你的內核中配置cpufreq-stats:: 120 120 121 Config Main Menu 121 Config Main Menu 122 Power management options (ACPI 122 Power management options (ACPI, APM) ---> 123 CPU Frequency scaling 123 CPU Frequency scaling ---> 124 [*] CPU Freque 124 [*] CPU Frequency scaling 125 [*] CPU freq 125 [*] CPU frequency translation statistics 126 126 127 127 128 "CPU Frequency scaling" (CONFIG_CPU_FREQ) 應 128 "CPU Frequency scaling" (CONFIG_CPU_FREQ) 應該被啓用,以支持配置cpufreq-stats。 129 129 130 "CPU frequency translation statistics" (CONFIG 130 "CPU frequency translation statistics" (CONFIG_CPU_FREQ_STAT)提供了包括 131 time_in_state、total_trans和trans_table的 131 time_in_state、total_trans和trans_table的統計數據。 132 132 133 一旦啓用了這個選項,並且你的CPU 133 一旦啓用了這個選項,並且你的CPU支持cpufrequency,你就可以在/sysfs中看到CPU頻率統計。 134 134
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.