OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [Documentation/] [cpu-freq/] [cpufreq-stats.txt] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 xianfeng
 
2
     CPU frequency and voltage scaling statistics in the Linux(TM) kernel
3
 
4
 
5
             L i n u x    c p u f r e q - s t a t s   d r i v e r
6
 
7
                       - information for users -
8
 
9
 
10
             Venkatesh Pallipadi 
11
 
12
Contents
13
1. Introduction
14
2. Statistics Provided (with example)
15
3. Configuring cpufreq-stats
16
 
17
 
18
1. Introduction
19
 
20
cpufreq-stats is a driver that provides CPU frequency statistics for each CPU.
21
These statistics are provided in /sysfs as a bunch of read_only interfaces. This
22
interface (when configured) will appear in a separate directory under cpufreq
23
in /sysfs (/devices/system/cpu/cpuX/cpufreq/stats/) for each CPU.
24
Various statistics will form read_only files under this directory.
25
 
26
This driver is designed to be independent of any particular cpufreq_driver
27
that may be running on your CPU. So, it will work with any cpufreq_driver.
28
 
29
 
30
2. Statistics Provided (with example)
31
 
32
cpufreq stats provides following statistics (explained in detail below).
33
-  time_in_state
34
-  total_trans
35
-  trans_table
36
 
37
All the statistics will be from the time the stats driver has been inserted
38
to the time when a read of a particular statistic is done. Obviously, stats
39
driver will not have any information about the frequency transitions before
40
the stats driver insertion.
41
 
42
--------------------------------------------------------------------------------
43
:/sys/devices/system/cpu/cpu0/cpufreq/stats # ls -l
44
total 0
45
drwxr-xr-x  2 root root    0 May 14 16:06 .
46
drwxr-xr-x  3 root root    0 May 14 15:58 ..
47
-r--r--r--  1 root root 4096 May 14 16:06 time_in_state
48
-r--r--r--  1 root root 4096 May 14 16:06 total_trans
49
-r--r--r--  1 root root 4096 May 14 16:06 trans_table
50
--------------------------------------------------------------------------------
51
 
52
-  time_in_state
53
This gives the amount of time spent in each of the frequencies supported by
54
this CPU. The cat output will have " 
55
will mean this CPU spent 
56
will have one line for each of the supported frequencies. usertime units here
57
is 10mS (similar to other time exported in /proc).
58
 
59
--------------------------------------------------------------------------------
60
:/sys/devices/system/cpu/cpu0/cpufreq/stats # cat time_in_state
61
3600000 2089
62
3400000 136
63
3200000 34
64
3000000 67
65
2800000 172488
66
--------------------------------------------------------------------------------
67
 
68
 
69
-  total_trans
70
This gives the total number of frequency transitions on this CPU. The cat
71
output will have a single count which is the total number of frequency
72
transitions.
73
 
74
--------------------------------------------------------------------------------
75
:/sys/devices/system/cpu/cpu0/cpufreq/stats # cat total_trans
76
20
77
--------------------------------------------------------------------------------
78
 
79
-  trans_table
80
This will give a fine grained information about all the CPU frequency
81
transitions. The cat output here is a two dimensional matrix, where an entry
82
 (row i, column j) represents the count of number of transitions from
83
Freq_i to Freq_j. Freq_i is in descending order with increasing rows and
84
Freq_j is in descending order with increasing columns. The output here also
85
contains the actual freq values for each row and column for better readability.
86
 
87
--------------------------------------------------------------------------------
88
:/sys/devices/system/cpu/cpu0/cpufreq/stats # cat trans_table
89
   From  :    To
90
         :   3600000   3400000   3200000   3000000   2800000
91
  3600000:         0         5         0         0         0
92
  3400000:         4         0         2         0         0
93
  3200000:         0         1         0         2         0
94
  3000000:         0         0         1         0         3
95
  2800000:         0         0         0         2         0
96
--------------------------------------------------------------------------------
97
 
98
 
99
3. Configuring cpufreq-stats
100
 
101
To configure cpufreq-stats in your kernel
102
Config Main Menu
103
        Power management options (ACPI, APM)  --->
104
                CPU Frequency scaling  --->
105
                        [*] CPU Frequency scaling
106
                        <*>   CPU frequency translation statistics
107
                        [*]     CPU frequency translation statistics details
108
 
109
 
110
"CPU Frequency scaling" (CONFIG_CPU_FREQ) should be enabled to configure
111
cpufreq-stats.
112
 
113
"CPU frequency translation statistics" (CONFIG_CPU_FREQ_STAT) provides the
114
basic statistics which includes time_in_state and total_trans.
115
 
116
"CPU frequency translation statistics details" (CONFIG_CPU_FREQ_STAT_DETAILS)
117
provides fine grained cpufreq stats by trans_table. The reason for having a
118
separate config option for trans_table is:
119
- trans_table goes against the traditional /sysfs rule of one value per
120
  interface. It provides a whole bunch of value in a 2 dimensional matrix
121
  form.
122
 
123
Once these two options are enabled and your CPU supports cpufrequency, you
124
will be able to see the CPU frequency statistics in /sysfs.
125
 
126
 
127
 
128
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.