~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/firmware-guide/acpi/method-tracing.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/firmware-guide/acpi/method-tracing.rst (Version linux-6.12-rc7) and /Documentation/firmware-guide/acpi/method-tracing.rst (Version linux-5.15.171)


  1 .. SPDX-License-Identifier: GPL-2.0                 1 .. SPDX-License-Identifier: GPL-2.0
  2 .. include:: <isonum.txt>                           2 .. include:: <isonum.txt>
  3                                                     3 
  4 =====================                               4 =====================
  5 ACPICA Trace Facility                               5 ACPICA Trace Facility
  6 =====================                               6 =====================
  7                                                     7 
  8 :Copyright: |copy| 2015, Intel Corporation          8 :Copyright: |copy| 2015, Intel Corporation
  9 :Author: Lv Zheng <lv.zheng@intel.com>               9 :Author: Lv Zheng <lv.zheng@intel.com>
 10                                                    10 
 11                                                    11 
 12 Abstract                                           12 Abstract
 13 ========                                           13 ========
 14 This document describes the functions and the      14 This document describes the functions and the interfaces of the
 15 method tracing facility.                           15 method tracing facility.
 16                                                    16 
 17 Functionalities and usage examples                 17 Functionalities and usage examples
 18 ==================================                 18 ==================================
 19                                                    19 
 20 ACPICA provides method tracing capability. And     20 ACPICA provides method tracing capability. And two functions are
 21 currently implemented using this capability.       21 currently implemented using this capability.
 22                                                    22 
 23 Log reducer                                        23 Log reducer
 24 -----------                                        24 -----------
 25                                                    25 
 26 ACPICA subsystem provides debugging outputs wh     26 ACPICA subsystem provides debugging outputs when CONFIG_ACPI_DEBUG is
 27 enabled. The debugging messages which are depl     27 enabled. The debugging messages which are deployed via
 28 ACPI_DEBUG_PRINT() macro can be reduced at 2 l     28 ACPI_DEBUG_PRINT() macro can be reduced at 2 levels - per-component
 29 level (known as debug layer, configured via        29 level (known as debug layer, configured via
 30 /sys/module/acpi/parameters/debug_layer) and p     30 /sys/module/acpi/parameters/debug_layer) and per-type level (known as
 31 debug level, configured via /sys/module/acpi/p     31 debug level, configured via /sys/module/acpi/parameters/debug_level).
 32                                                    32 
 33 But when the particular layer/level is applied     33 But when the particular layer/level is applied to the control method
 34 evaluations, the quantity of the debugging out     34 evaluations, the quantity of the debugging outputs may still be too
 35 large to be put into the kernel log buffer. Th     35 large to be put into the kernel log buffer. The idea thus is worked out
 36 to only enable the particular debug layer/leve     36 to only enable the particular debug layer/level (normally more detailed)
 37 logs when the control method evaluation is sta     37 logs when the control method evaluation is started, and disable the
 38 detailed logging when the control method evalu     38 detailed logging when the control method evaluation is stopped.
 39                                                    39 
 40 The following command examples illustrate the      40 The following command examples illustrate the usage of the "log reducer"
 41 functionality:                                     41 functionality:
 42                                                    42 
 43 a. Filter out the debug layer/level matched lo     43 a. Filter out the debug layer/level matched logs when control methods
 44    are being evaluated::                           44    are being evaluated::
 45                                                    45 
 46       # cd /sys/module/acpi/parameters             46       # cd /sys/module/acpi/parameters
 47       # echo "0xXXXXXXXX" > trace_debug_layer      47       # echo "0xXXXXXXXX" > trace_debug_layer
 48       # echo "0xYYYYYYYY" > trace_debug_level      48       # echo "0xYYYYYYYY" > trace_debug_level
 49       # echo "enable" > trace_state                49       # echo "enable" > trace_state
 50                                                    50 
 51 b. Filter out the debug layer/level matched lo     51 b. Filter out the debug layer/level matched logs when the specified
 52    control method is being evaluated::             52    control method is being evaluated::
 53                                                    53 
 54       # cd /sys/module/acpi/parameters             54       # cd /sys/module/acpi/parameters
 55       # echo "0xXXXXXXXX" > trace_debug_layer      55       # echo "0xXXXXXXXX" > trace_debug_layer
 56       # echo "0xYYYYYYYY" > trace_debug_level      56       # echo "0xYYYYYYYY" > trace_debug_level
 57       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_me     57       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
 58       # echo "method" > /sys/module/acpi/param     58       # echo "method" > /sys/module/acpi/parameters/trace_state
 59                                                    59 
 60 c. Filter out the debug layer/level matched lo     60 c. Filter out the debug layer/level matched logs when the specified
 61    control method is being evaluated for the f     61    control method is being evaluated for the first time::
 62                                                    62 
 63       # cd /sys/module/acpi/parameters             63       # cd /sys/module/acpi/parameters
 64       # echo "0xXXXXXXXX" > trace_debug_layer      64       # echo "0xXXXXXXXX" > trace_debug_layer
 65       # echo "0xYYYYYYYY" > trace_debug_level      65       # echo "0xYYYYYYYY" > trace_debug_level
 66       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_me     66       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
 67       # echo "method-once" > /sys/module/acpi/     67       # echo "method-once" > /sys/module/acpi/parameters/trace_state
 68                                                    68 
 69 Where:                                             69 Where:
 70    0xXXXXXXXX/0xYYYYYYYY                           70    0xXXXXXXXX/0xYYYYYYYY
 71      Refer to Documentation/firmware-guide/acp     71      Refer to Documentation/firmware-guide/acpi/debug.rst for possible debug layer/level
 72      masking values.                               72      masking values.
 73    \PPPP.AAAA.TTTT.HHHH                            73    \PPPP.AAAA.TTTT.HHHH
 74      Full path of a control method that can be     74      Full path of a control method that can be found in the ACPI namespace.
 75      It needn't be an entry of a control metho     75      It needn't be an entry of a control method evaluation.
 76                                                    76 
 77 AML tracer                                         77 AML tracer
 78 ----------                                         78 ----------
 79                                                    79 
 80 There are special log entries added by the met     80 There are special log entries added by the method tracing facility at
 81 the "trace points" the AML interpreter starts/     81 the "trace points" the AML interpreter starts/stops to execute a control
 82 method, or an AML opcode. Note that the format     82 method, or an AML opcode. Note that the format of the log entries are
 83 subject to change::                                83 subject to change::
 84                                                    84 
 85    [    0.186427]   exdebug-0398 ex_trace_poin     85    [    0.186427]   exdebug-0398 ex_trace_point        : Method Begin [0xf58394d8:\_SB.PCI0.LPCB.ECOK] execution.
 86    [    0.186630]   exdebug-0398 ex_trace_poin     86    [    0.186630]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905c88:If] execution.
 87    [    0.186820]   exdebug-0398 ex_trace_poin     87    [    0.186820]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905cc0:LEqual] execution.
 88    [    0.187010]   exdebug-0398 ex_trace_poin     88    [    0.187010]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905a20:-NamePath-] execution.
 89    [    0.187214]   exdebug-0398 ex_trace_poin     89    [    0.187214]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905a20:-NamePath-] execution.
 90    [    0.187407]   exdebug-0398 ex_trace_poin     90    [    0.187407]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905f60:One] execution.
 91    [    0.187594]   exdebug-0398 ex_trace_poin     91    [    0.187594]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905f60:One] execution.
 92    [    0.187789]   exdebug-0398 ex_trace_poin     92    [    0.187789]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905cc0:LEqual] execution.
 93    [    0.187980]   exdebug-0398 ex_trace_poin     93    [    0.187980]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905cc0:Return] execution.
 94    [    0.188146]   exdebug-0398 ex_trace_poin     94    [    0.188146]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905f60:One] execution.
 95    [    0.188334]   exdebug-0398 ex_trace_poin     95    [    0.188334]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905f60:One] execution.
 96    [    0.188524]   exdebug-0398 ex_trace_poin     96    [    0.188524]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905cc0:Return] execution.
 97    [    0.188712]   exdebug-0398 ex_trace_poin     97    [    0.188712]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905c88:If] execution.
 98    [    0.188903]   exdebug-0398 ex_trace_poin     98    [    0.188903]   exdebug-0398 ex_trace_point        : Method End [0xf58394d8:\_SB.PCI0.LPCB.ECOK] execution.
 99                                                    99 
100 Developers can utilize these special log entri    100 Developers can utilize these special log entries to track the AML
101 interpretation, thus can aid issue debugging a    101 interpretation, thus can aid issue debugging and performance tuning. Note
102 that, as the "AML tracer" logs are implemented    102 that, as the "AML tracer" logs are implemented via ACPI_DEBUG_PRINT()
103 macro, CONFIG_ACPI_DEBUG is also required to b    103 macro, CONFIG_ACPI_DEBUG is also required to be enabled for enabling
104 "AML tracer" logs.                                104 "AML tracer" logs.
105                                                   105 
106 The following command examples illustrate the     106 The following command examples illustrate the usage of the "AML tracer"
107 functionality:                                    107 functionality:
108                                                   108 
109 a. Filter out the method start/stop "AML trace    109 a. Filter out the method start/stop "AML tracer" logs when control
110    methods are being evaluated::                  110    methods are being evaluated::
111                                                   111 
112       # cd /sys/module/acpi/parameters            112       # cd /sys/module/acpi/parameters
113       # echo "0x80" > trace_debug_layer           113       # echo "0x80" > trace_debug_layer
114       # echo "0x10" > trace_debug_level           114       # echo "0x10" > trace_debug_level
115       # echo "enable" > trace_state               115       # echo "enable" > trace_state
116                                                   116 
117 b. Filter out the method start/stop "AML trace    117 b. Filter out the method start/stop "AML tracer" when the specified
118    control method is being evaluated::            118    control method is being evaluated::
119                                                   119 
120       # cd /sys/module/acpi/parameters            120       # cd /sys/module/acpi/parameters
121       # echo "0x80" > trace_debug_layer           121       # echo "0x80" > trace_debug_layer
122       # echo "0x10" > trace_debug_level           122       # echo "0x10" > trace_debug_level
123       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_me    123       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
124       # echo "method" > trace_state               124       # echo "method" > trace_state
125                                                   125 
126 c. Filter out the method start/stop "AML trace    126 c. Filter out the method start/stop "AML tracer" logs when the specified
127    control method is being evaluated for the f    127    control method is being evaluated for the first time::
128                                                   128 
129       # cd /sys/module/acpi/parameters            129       # cd /sys/module/acpi/parameters
130       # echo "0x80" > trace_debug_layer           130       # echo "0x80" > trace_debug_layer
131       # echo "0x10" > trace_debug_level           131       # echo "0x10" > trace_debug_level
132       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_me    132       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
133       # echo "method-once" > trace_state          133       # echo "method-once" > trace_state
134                                                   134 
135 d. Filter out the method/opcode start/stop "AM    135 d. Filter out the method/opcode start/stop "AML tracer" when the
136    specified control method is being evaluated    136    specified control method is being evaluated::
137                                                   137 
138       # cd /sys/module/acpi/parameters            138       # cd /sys/module/acpi/parameters
139       # echo "0x80" > trace_debug_layer           139       # echo "0x80" > trace_debug_layer
140       # echo "0x10" > trace_debug_level           140       # echo "0x10" > trace_debug_level
141       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_me    141       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
142       # echo "opcode" > trace_state               142       # echo "opcode" > trace_state
143                                                   143 
144 e. Filter out the method/opcode start/stop "AM    144 e. Filter out the method/opcode start/stop "AML tracer" when the
145    specified control method is being evaluated    145    specified control method is being evaluated for the first time::
146                                                   146 
147       # cd /sys/module/acpi/parameters            147       # cd /sys/module/acpi/parameters
148       # echo "0x80" > trace_debug_layer           148       # echo "0x80" > trace_debug_layer
149       # echo "0x10" > trace_debug_level           149       # echo "0x10" > trace_debug_level
150       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_me    150       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
151       # echo "opcode-opcode" > trace_state        151       # echo "opcode-opcode" > trace_state
152                                                   152 
153 Note that all above method tracing facility re    153 Note that all above method tracing facility related module parameters can
154 be used as the boot parameters, for example::     154 be used as the boot parameters, for example::
155                                                   155 
156    acpi.trace_debug_layer=0x80 acpi.trace_debu    156    acpi.trace_debug_layer=0x80 acpi.trace_debug_level=0x10 \
157    acpi.trace_method_name=\_SB.LID0._LID acpi.    157    acpi.trace_method_name=\_SB.LID0._LID acpi.trace_state=opcode-once
158                                                   158 
159                                                   159 
160 Interface descriptions                            160 Interface descriptions
161 ======================                            161 ======================
162                                                   162 
163 All method tracing functions can be configured    163 All method tracing functions can be configured via ACPI module
164 parameters that are accessible at /sys/module/    164 parameters that are accessible at /sys/module/acpi/parameters/:
165                                                   165 
166 trace_method_name                                 166 trace_method_name
167   The full path of the AML method that the use    167   The full path of the AML method that the user wants to trace.
168                                                   168 
169   Note that the full path shouldn't contain th    169   Note that the full path shouldn't contain the trailing "_"s in its
170   name segments but may contain "\" to form an    170   name segments but may contain "\" to form an absolute path.
171                                                   171 
172 trace_debug_layer                                 172 trace_debug_layer
173   The temporary debug_layer used when the trac    173   The temporary debug_layer used when the tracing feature is enabled.
174                                                   174 
175   Using ACPI_EXECUTER (0x80) by default, which    175   Using ACPI_EXECUTER (0x80) by default, which is the debug_layer
176   used to match all "AML tracer" logs.            176   used to match all "AML tracer" logs.
177                                                   177 
178 trace_debug_level                                 178 trace_debug_level
179   The temporary debug_level used when the trac    179   The temporary debug_level used when the tracing feature is enabled.
180                                                   180 
181   Using ACPI_LV_TRACE_POINT (0x10) by default,    181   Using ACPI_LV_TRACE_POINT (0x10) by default, which is the
182   debug_level used to match all "AML tracer" l    182   debug_level used to match all "AML tracer" logs.
183                                                   183 
184 trace_state                                       184 trace_state
185   The status of the tracing feature.              185   The status of the tracing feature.
186                                                   186 
187   Users can enable/disable this debug tracing     187   Users can enable/disable this debug tracing feature by executing
188   the following command::                         188   the following command::
189                                                   189 
190    # echo string > /sys/module/acpi/parameters    190    # echo string > /sys/module/acpi/parameters/trace_state
191                                                   191 
192 Where "string" should be one of the following:    192 Where "string" should be one of the following:
193                                                   193 
194 "disable"                                         194 "disable"
195   Disable the method tracing feature.             195   Disable the method tracing feature.
196                                                   196 
197 "enable"                                          197 "enable"
198   Enable the method tracing feature.              198   Enable the method tracing feature.
199                                                   199   
200   ACPICA debugging messages matching "trace_de    200   ACPICA debugging messages matching "trace_debug_layer/trace_debug_level"
201   during any method execution will be logged.     201   during any method execution will be logged.
202                                                   202 
203 "method"                                          203 "method"
204   Enable the method tracing feature.              204   Enable the method tracing feature.
205                                                   205 
206   ACPICA debugging messages matching "trace_de    206   ACPICA debugging messages matching "trace_debug_layer/trace_debug_level"
207   during method execution of "trace_method_nam    207   during method execution of "trace_method_name" will be logged.
208                                                   208 
209 "method-once"                                     209 "method-once"
210   Enable the method tracing feature.              210   Enable the method tracing feature.
211                                                   211 
212   ACPICA debugging messages matching "trace_de    212   ACPICA debugging messages matching "trace_debug_layer/trace_debug_level"
213   during method execution of "trace_method_nam    213   during method execution of "trace_method_name" will be logged only once.
214                                                   214 
215 "opcode"                                          215 "opcode"
216   Enable the method tracing feature.              216   Enable the method tracing feature.
217                                                   217 
218   ACPICA debugging messages matching "trace_de    218   ACPICA debugging messages matching "trace_debug_layer/trace_debug_level"
219   during method/opcode execution of "trace_met    219   during method/opcode execution of "trace_method_name" will be logged.
220                                                   220 
221 "opcode-once"                                     221 "opcode-once"
222   Enable the method tracing feature.              222   Enable the method tracing feature.
223                                                   223 
224   ACPICA debugging messages matching "trace_de    224   ACPICA debugging messages matching "trace_debug_layer/trace_debug_level"
225   during method/opcode execution of "trace_met    225   during method/opcode execution of "trace_method_name" will be logged only
226   once.                                           226   once.
227                                                   227 
228 Note that, the difference between the "enable"    228 Note that, the difference between the "enable" and other feature
229 enabling options are:                             229 enabling options are:
230                                                   230 
231 1. When "enable" is specified, since              231 1. When "enable" is specified, since
232    "trace_debug_layer/trace_debug_level" shall    232    "trace_debug_layer/trace_debug_level" shall apply to all control
233    method evaluations, after configuring "trac    233    method evaluations, after configuring "trace_state" to "enable",
234    "trace_method_name" will be reset to NULL.     234    "trace_method_name" will be reset to NULL.
235 2. When "method/opcode" is specified, if          235 2. When "method/opcode" is specified, if
236    "trace_method_name" is NULL when "trace_sta    236    "trace_method_name" is NULL when "trace_state" is configured to
237    these options, the "trace_debug_layer/trace    237    these options, the "trace_debug_layer/trace_debug_level" will
238    apply to all control method evaluations.       238    apply to all control method evaluations.
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php