About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / acpi / debug.txt




Custom Search

Based on kernel version 3.16. Page generated on 2014-08-06 21:36 EST.

1				ACPI Debug Output
2	
3	
4	The ACPI CA, the Linux ACPI core, and some ACPI drivers can generate debug
5	output.  This document describes how to use this facility.
6	
7	Compile-time configuration
8	--------------------------
9	
10	ACPI debug output is globally enabled by CONFIG_ACPI_DEBUG.  If this config
11	option is turned off, the debug messages are not even built into the
12	kernel.
13	
14	Boot- and run-time configuration
15	--------------------------------
16	
17	When CONFIG_ACPI_DEBUG=y, you can select the component and level of messages
18	you're interested in.  At boot-time, use the acpi.debug_layer and
19	acpi.debug_level kernel command line options.  After boot, you can use the
20	debug_layer and debug_level files in /sys/module/acpi/parameters/ to control
21	the debug messages.
22	
23	debug_layer (component)
24	-----------------------
25	
26	The "debug_layer" is a mask that selects components of interest, e.g., a
27	specific driver or part of the ACPI interpreter.  To build the debug_layer
28	bitmask, look for the "#define _COMPONENT" in an ACPI source file.
29	
30	You can set the debug_layer mask at boot-time using the acpi.debug_layer
31	command line argument, and you can change it after boot by writing values
32	to /sys/module/acpi/parameters/debug_layer.
33	
34	The possible components are defined in include/acpi/acoutput.h and
35	include/acpi/acpi_drivers.h.  Reading /sys/module/acpi/parameters/debug_layer
36	shows the supported mask values, currently these:
37	
38	    ACPI_UTILITIES                  0x00000001
39	    ACPI_HARDWARE                   0x00000002
40	    ACPI_EVENTS                     0x00000004
41	    ACPI_TABLES                     0x00000008
42	    ACPI_NAMESPACE                  0x00000010
43	    ACPI_PARSER                     0x00000020
44	    ACPI_DISPATCHER                 0x00000040
45	    ACPI_EXECUTER                   0x00000080
46	    ACPI_RESOURCES                  0x00000100
47	    ACPI_CA_DEBUGGER                0x00000200
48	    ACPI_OS_SERVICES                0x00000400
49	    ACPI_CA_DISASSEMBLER            0x00000800
50	    ACPI_COMPILER                   0x00001000
51	    ACPI_TOOLS                      0x00002000
52	    ACPI_BUS_COMPONENT              0x00010000
53	    ACPI_AC_COMPONENT               0x00020000
54	    ACPI_BATTERY_COMPONENT          0x00040000
55	    ACPI_BUTTON_COMPONENT           0x00080000
56	    ACPI_SBS_COMPONENT              0x00100000
57	    ACPI_FAN_COMPONENT              0x00200000
58	    ACPI_PCI_COMPONENT              0x00400000
59	    ACPI_POWER_COMPONENT            0x00800000
60	    ACPI_CONTAINER_COMPONENT        0x01000000
61	    ACPI_SYSTEM_COMPONENT           0x02000000
62	    ACPI_THERMAL_COMPONENT          0x04000000
63	    ACPI_MEMORY_DEVICE_COMPONENT    0x08000000
64	    ACPI_VIDEO_COMPONENT            0x10000000
65	    ACPI_PROCESSOR_COMPONENT        0x20000000
66	
67	debug_level
68	-----------
69	
70	The "debug_level" is a mask that selects different types of messages, e.g.,
71	those related to initialization, method execution, informational messages, etc.
72	To build debug_level, look at the level specified in an ACPI_DEBUG_PRINT()
73	statement.
74	
75	The ACPI interpreter uses several different levels, but the Linux
76	ACPI core and ACPI drivers generally only use ACPI_LV_INFO.
77	
78	You can set the debug_level mask at boot-time using the acpi.debug_level
79	command line argument, and you can change it after boot by writing values
80	to /sys/module/acpi/parameters/debug_level.
81	
82	The possible levels are defined in include/acpi/acoutput.h.  Reading
83	/sys/module/acpi/parameters/debug_level shows the supported mask values,
84	currently these:
85	
86	    ACPI_LV_INIT                    0x00000001
87	    ACPI_LV_DEBUG_OBJECT            0x00000002
88	    ACPI_LV_INFO                    0x00000004
89	    ACPI_LV_INIT_NAMES              0x00000020
90	    ACPI_LV_PARSE                   0x00000040
91	    ACPI_LV_LOAD                    0x00000080
92	    ACPI_LV_DISPATCH                0x00000100
93	    ACPI_LV_EXEC                    0x00000200
94	    ACPI_LV_NAMES                   0x00000400
95	    ACPI_LV_OPREGION                0x00000800
96	    ACPI_LV_BFIELD                  0x00001000
97	    ACPI_LV_TABLES                  0x00002000
98	    ACPI_LV_VALUES                  0x00004000
99	    ACPI_LV_OBJECTS                 0x00008000
100	    ACPI_LV_RESOURCES               0x00010000
101	    ACPI_LV_USER_REQUESTS           0x00020000
102	    ACPI_LV_PACKAGE                 0x00040000
103	    ACPI_LV_ALLOCATIONS             0x00100000
104	    ACPI_LV_FUNCTIONS               0x00200000
105	    ACPI_LV_OPTIMIZATIONS           0x00400000
106	    ACPI_LV_MUTEX                   0x01000000
107	    ACPI_LV_THREADS                 0x02000000
108	    ACPI_LV_IO                      0x04000000
109	    ACPI_LV_INTERRUPTS              0x08000000
110	    ACPI_LV_AML_DISASSEMBLE         0x10000000
111	    ACPI_LV_VERBOSE_INFO            0x20000000
112	    ACPI_LV_FULL_TABLES             0x40000000
113	    ACPI_LV_EVENTS                  0x80000000
114	
115	Examples
116	--------
117	
118	For example, drivers/acpi/bus.c contains this:
119	
120	    #define _COMPONENT              ACPI_BUS_COMPONENT
121	    ...
122	    ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Device insertion detected\n"));
123	
124	To turn on this message, set the ACPI_BUS_COMPONENT bit in acpi.debug_layer
125	and the ACPI_LV_INFO bit in acpi.debug_level.  (The ACPI_DEBUG_PRINT
126	statement uses ACPI_DB_INFO, which is macro based on the ACPI_LV_INFO
127	definition.)
128	
129	Enable all AML "Debug" output (stores to the Debug object while interpreting
130	AML) during boot:
131	
132	    acpi.debug_layer=0xffffffff acpi.debug_level=0x2
133	
134	Enable PCI and PCI interrupt routing debug messages:
135	
136	    acpi.debug_layer=0x400000 acpi.debug_level=0x4
137	
138	Enable all ACPI hardware-related messages:
139	
140	    acpi.debug_layer=0x2 acpi.debug_level=0xffffffff
141	
142	Enable all ACPI_DB_INFO messages after boot:
143	
144	    # echo 0x4 > /sys/module/acpi/parameters/debug_level
145	
146	Show all valid component values:
147	
148	    # cat /sys/module/acpi/parameters/debug_layer
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.