mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	 4091fb95b5
			
		
	
	
		4091fb95b5
		
	
	
	
	
		
			
			Fix typos and add the following to the scripts/spelling.txt: followings||following While we are here, add a missing colon in the boilerplate in DT binding documents. The "you SoC" in allwinner,sunxi-pinctrl.txt was fixed as well. I reworded "as the followings:" to "as follows:" for drivers/usb/gadget/udc/renesas_usb3.c. Link: http://lkml.kernel.org/r/1481573103-11329-32-git-send-email-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			193 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			193 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ACPICA Trace Facility
 | |
| 
 | |
| Copyright (C) 2015, Intel Corporation
 | |
| Author: Lv Zheng <lv.zheng@intel.com>
 | |
| 
 | |
| 
 | |
| Abstract:
 | |
| 
 | |
| This document describes the functions and the interfaces of the method
 | |
| tracing facility.
 | |
| 
 | |
| 1. Functionalities and usage examples:
 | |
| 
 | |
|    ACPICA provides method tracing capability. And two functions are
 | |
|    currently implemented using this capability.
 | |
| 
 | |
|    A. Log reducer
 | |
|    ACPICA subsystem provides debugging outputs when CONFIG_ACPI_DEBUG is
 | |
|    enabled. The debugging messages which are deployed via
 | |
|    ACPI_DEBUG_PRINT() macro can be reduced at 2 levels - per-component
 | |
|    level (known as debug layer, configured via
 | |
|    /sys/module/acpi/parameters/debug_layer) and per-type level (known as
 | |
|    debug level, configured via /sys/module/acpi/parameters/debug_level).
 | |
| 
 | |
|    But when the particular layer/level is applied to the control method
 | |
|    evaluations, the quantity of the debugging outputs may still be too
 | |
|    large to be put into the kernel log buffer. The idea thus is worked out
 | |
|    to only enable the particular debug layer/level (normally more detailed)
 | |
|    logs when the control method evaluation is started, and disable the
 | |
|    detailed logging when the control method evaluation is stopped.
 | |
| 
 | |
|    The following command examples illustrate the usage of the "log reducer"
 | |
|    functionality:
 | |
|    a. Filter out the debug layer/level matched logs when control methods
 | |
|       are being evaluated:
 | |
|       # cd /sys/module/acpi/parameters
 | |
|       # echo "0xXXXXXXXX" > trace_debug_layer
 | |
|       # echo "0xYYYYYYYY" > trace_debug_level
 | |
|       # echo "enable" > trace_state
 | |
|    b. Filter out the debug layer/level matched logs when the specified
 | |
|       control method is being evaluated:
 | |
|       # cd /sys/module/acpi/parameters
 | |
|       # echo "0xXXXXXXXX" > trace_debug_layer
 | |
|       # echo "0xYYYYYYYY" > trace_debug_level
 | |
|       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
 | |
|       # echo "method" > /sys/module/acpi/parameters/trace_state
 | |
|    c. Filter out the debug layer/level matched logs when the specified
 | |
|       control method is being evaluated for the first time:
 | |
|       # cd /sys/module/acpi/parameters
 | |
|       # echo "0xXXXXXXXX" > trace_debug_layer
 | |
|       # echo "0xYYYYYYYY" > trace_debug_level
 | |
|       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
 | |
|       # echo "method-once" > /sys/module/acpi/parameters/trace_state
 | |
|    Where:
 | |
|       0xXXXXXXXX/0xYYYYYYYY: Refer to Documentation/acpi/debug.txt for
 | |
| 			     possible debug layer/level masking values.
 | |
|       \PPPP.AAAA.TTTT.HHHH: Full path of a control method that can be found
 | |
| 			    in the ACPI namespace. It needn't be an entry
 | |
| 			    of a control method evaluation.
 | |
| 
 | |
|    B. AML tracer
 | |
| 
 | |
|    There are special log entries added by the method tracing facility at
 | |
|    the "trace points" the AML interpreter starts/stops to execute a control
 | |
|    method, or an AML opcode. Note that the format of the log entries are
 | |
|    subject to change:
 | |
|      [    0.186427]   exdebug-0398 ex_trace_point        : Method Begin [0xf58394d8:\_SB.PCI0.LPCB.ECOK] execution.
 | |
|      [    0.186630]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905c88:If] execution.
 | |
|      [    0.186820]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905cc0:LEqual] execution.
 | |
|      [    0.187010]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905a20:-NamePath-] execution.
 | |
|      [    0.187214]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905a20:-NamePath-] execution.
 | |
|      [    0.187407]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905f60:One] execution.
 | |
|      [    0.187594]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905f60:One] execution.
 | |
|      [    0.187789]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905cc0:LEqual] execution.
 | |
|      [    0.187980]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905cc0:Return] execution.
 | |
|      [    0.188146]   exdebug-0398 ex_trace_point        : Opcode Begin [0xf5905f60:One] execution.
 | |
|      [    0.188334]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905f60:One] execution.
 | |
|      [    0.188524]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905cc0:Return] execution.
 | |
|      [    0.188712]   exdebug-0398 ex_trace_point        : Opcode End [0xf5905c88:If] execution.
 | |
|      [    0.188903]   exdebug-0398 ex_trace_point        : Method End [0xf58394d8:\_SB.PCI0.LPCB.ECOK] execution.
 | |
| 
 | |
|    Developers can utilize these special log entries to track the AML
 | |
|    interpretion, thus can aid issue debugging and performance tuning. Note
 | |
|    that, as the "AML tracer" logs are implemented via ACPI_DEBUG_PRINT()
 | |
|    macro, CONFIG_ACPI_DEBUG is also required to be enabled for enabling
 | |
|    "AML tracer" logs.
 | |
| 
 | |
|    The following command examples illustrate the usage of the "AML tracer"
 | |
|    functionality:
 | |
|    a. Filter out the method start/stop "AML tracer" logs when control
 | |
|       methods are being evaluated:
 | |
|       # cd /sys/module/acpi/parameters
 | |
|       # echo "0x80" > trace_debug_layer
 | |
|       # echo "0x10" > trace_debug_level
 | |
|       # echo "enable" > trace_state
 | |
|    b. Filter out the method start/stop "AML tracer" when the specified
 | |
|       control method is being evaluated:
 | |
|       # cd /sys/module/acpi/parameters
 | |
|       # echo "0x80" > trace_debug_layer
 | |
|       # echo "0x10" > trace_debug_level
 | |
|       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
 | |
|       # echo "method" > trace_state
 | |
|    c. Filter out the method start/stop "AML tracer" logs when the specified
 | |
|       control method is being evaluated for the first time:
 | |
|       # cd /sys/module/acpi/parameters
 | |
|       # echo "0x80" > trace_debug_layer
 | |
|       # echo "0x10" > trace_debug_level
 | |
|       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
 | |
|       # echo "method-once" > trace_state
 | |
|    d. Filter out the method/opcode start/stop "AML tracer" when the
 | |
|       specified control method is being evaluated:
 | |
|       # cd /sys/module/acpi/parameters
 | |
|       # echo "0x80" > trace_debug_layer
 | |
|       # echo "0x10" > trace_debug_level
 | |
|       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
 | |
|       # echo "opcode" > trace_state
 | |
|    e. Filter out the method/opcode start/stop "AML tracer" when the
 | |
|       specified control method is being evaluated for the first time:
 | |
|       # cd /sys/module/acpi/parameters
 | |
|       # echo "0x80" > trace_debug_layer
 | |
|       # echo "0x10" > trace_debug_level
 | |
|       # echo "\PPPP.AAAA.TTTT.HHHH" > trace_method_name
 | |
|       # echo "opcode-opcode" > trace_state
 | |
| 
 | |
|   Note that all above method tracing facility related module parameters can
 | |
|   be used as the boot parameters, for example:
 | |
|       acpi.trace_debug_layer=0x80 acpi.trace_debug_level=0x10 \
 | |
|       acpi.trace_method_name=\_SB.LID0._LID acpi.trace_state=opcode-once
 | |
| 
 | |
| 2. Interface descriptions:
 | |
| 
 | |
|    All method tracing functions can be configured via ACPI module
 | |
|    parameters that are accessible at /sys/module/acpi/parameters/:
 | |
| 
 | |
|    trace_method_name
 | |
| 	The full path of the AML method that the user wants to trace.
 | |
| 	Note that the full path shouldn't contain the trailing "_"s in its
 | |
| 	name segments but may contain "\" to form an absolute path.
 | |
| 
 | |
|    trace_debug_layer
 | |
| 	The temporary debug_layer used when the tracing feature is enabled.
 | |
| 	Using ACPI_EXECUTER (0x80) by default, which is the debug_layer
 | |
| 	used to match all "AML tracer" logs.
 | |
| 
 | |
|    trace_debug_level
 | |
| 	The temporary debug_level used when the tracing feature is enabled.
 | |
| 	Using ACPI_LV_TRACE_POINT (0x10) by default, which is the
 | |
| 	debug_level used to match all "AML tracer" logs.
 | |
| 
 | |
|    trace_state
 | |
| 	The status of the tracing feature.
 | |
| 	Users can enable/disable this debug tracing feature by executing
 | |
| 	the following command:
 | |
| 	    # echo string > /sys/module/acpi/parameters/trace_state
 | |
| 	Where "string" should be one of the following:
 | |
| 	"disable"
 | |
| 	    Disable the method tracing feature.
 | |
| 	"enable"
 | |
| 	    Enable the method tracing feature.
 | |
| 	    ACPICA debugging messages matching
 | |
| 	    "trace_debug_layer/trace_debug_level" during any method
 | |
| 	    execution will be logged.
 | |
| 	"method"
 | |
| 	    Enable the method tracing feature.
 | |
| 	    ACPICA debugging messages matching
 | |
| 	    "trace_debug_layer/trace_debug_level" during method execution
 | |
| 	    of "trace_method_name" will be logged.
 | |
| 	"method-once"
 | |
| 	    Enable the method tracing feature.
 | |
| 	    ACPICA debugging messages matching
 | |
| 	    "trace_debug_layer/trace_debug_level" during method execution
 | |
| 	    of "trace_method_name" will be logged only once.
 | |
| 	"opcode"
 | |
| 	    Enable the method tracing feature.
 | |
| 	    ACPICA debugging messages matching
 | |
| 	    "trace_debug_layer/trace_debug_level" during method/opcode
 | |
| 	    execution of "trace_method_name" will be logged.
 | |
| 	"opcode-once"
 | |
| 	    Enable the method tracing feature.
 | |
| 	    ACPICA debugging messages matching
 | |
| 	    "trace_debug_layer/trace_debug_level" during method/opcode
 | |
| 	    execution of "trace_method_name" will be logged only once.
 | |
| 	Note that, the difference between the "enable" and other feature
 | |
|         enabling options are:
 | |
| 	1. When "enable" is specified, since
 | |
| 	   "trace_debug_layer/trace_debug_level" shall apply to all control
 | |
| 	   method evaluations, after configuring "trace_state" to "enable",
 | |
| 	   "trace_method_name" will be reset to NULL.
 | |
| 	2. When "method/opcode" is specified, if
 | |
| 	   "trace_method_name" is NULL when "trace_state" is configured to
 | |
| 	   these options, the "trace_debug_layer/trace_debug_level" will
 | |
| 	   apply to all control method evaluations.
 |