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