public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Thomas Renninger <trenn-l3A5Bk7waGM@public.gmane.org>
To: ML ACPI-devel
	<acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
Subject: Print error, debug and info messages even if ACPI_DEBUG is off
Date: Mon, 28 Feb 2005 01:18:03 +0100	[thread overview]
Message-ID: <4222633B.4030704@suse.de> (raw)

[-- Attachment #1: Type: text/plain, Size: 1077 bytes --]

Shouldn't at least all error and warning messages be printed even if 
ACPI_DEBUG is off?

I collected all ACPI_DEBUG_PRINT (ACPI_DB_ERROR | ACPI_DB_WARN | 
ACPI_DB_INFO, ...) messages for discussion under:

ftp://ftp.suse.com/pub/people/trenn/acpi_messages/acpi_DEBUG_ERROR_messages
ftp://ftp.suse.com/pub/people/trenn/acpi_messages/acpi_DEBUG_WARNING_messages
ftp://ftp.suse.com/pub/people/trenn/acpi_messages/acpi_DEBUG_INFO_messages

The patch (2.6.11-rc5) attached provides another config, 
ACPI_DEBUG_LITE, that at least prints out ACPI_DB_ERROR | ACPI_DB_WARN 
messages.

It's probably cleaner to convert:

ACPI_DEBUG_PRINT (ACPI_DB_ERROR, ...)   -> ACPI_REPORT_ERROR (...)
ACPI_DEBUG_PRINT (ACPI_DB_WARNING, ...) -> ACPI_REPORT_WARNING (...)
ACPI_DEBUG_PRINT (ACPI_DB_INFO, ...)    -> ACPI_REPORT_INFO (...)

to show that messages, even if ACPI_DEBUG is disabled, without the need 
of another config variable.

Before I start on this one, I'd appreciate if someone of the Intel 
people could comment whether this will be accepted for mainline.

Thanks,

       Thomas



[-- Attachment #2: acpi_errors_on --]
[-- Type: text/plain, Size: 7621 bytes --]

Author: Thomas Renninger (mail-smMupaH/RwJM7kwft8N7nw@public.gmane.org)

Patch provides new ACPI_DEBUG_LITE config that prints
ACPI_DB_ERROR and ACPI_DB_WARNING messages even if
ACPI_DEBUG (which uses significantly amount of CPU since
latest kernel versions) is not set.


--- x/drivers/acpi/executer/exconvrt.c.orig	2005-02-24 17:39:47.000000000 +0100
+++ y/drivers/acpi/executer/exconvrt.c	2005-02-27 21:04:32.972577766 +0100
@@ -682,11 +682,9 @@
 
 
 	default:
-		ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
-			"Unknown Target type ID 0x%X Op %s dest_type %s\n",
+		ACPI_REPORT_ERROR (("Unknown Target type ID 0x%X dest_type %s\n",
 			GET_CURRENT_ARG_TYPE (walk_state->op_info->runtime_args),
-			walk_state->op_info->name, acpi_ut_get_type_name (destination_type)));
-
+		        acpi_ut_get_type_name (destination_type)));
 		ACPI_REPORT_ERROR (("Bad Target Type (ARGI): %X\n",
 			GET_CURRENT_ARG_TYPE (walk_state->op_info->runtime_args)))
 		status = AE_AML_INTERNAL;
--- x/drivers/acpi/executer/exresop.c.orig	2005-02-24 17:40:40.000000000 +0100
+++ y/drivers/acpi/executer/exresop.c	2005-02-27 21:04:32.973577559 +0100
@@ -159,9 +159,10 @@
 
 		return_ACPI_STATUS (AE_AML_INTERNAL);
 	}
-
+#ifdef ACPI_DEBUG_OUTPUT
 	ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Opcode %X [%s] required_operand_types=%8.8X \n",
 		opcode, op_info->name, arg_types));
+#endif
 
 	/*
 	 * Normal exit is with (arg_types == 0) at end of argument list.
@@ -232,10 +233,9 @@
 					break;
 
 				default:
-					ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
+					ACPI_REPORT_ERROR ((
 						"Operand is a Reference, Unknown Reference Opcode %X [%s]\n",
-						obj_desc->reference.opcode,
-						(acpi_ps_get_opcode_info (obj_desc->reference.opcode))->name));
+						obj_desc->reference.opcode));
 
 					return_ACPI_STATUS (AE_AML_OPERAND_TYPE);
 				}
--- x/drivers/acpi/dispatcher/dswload.c.orig	2005-02-24 17:39:53.000000000 +0100
+++ y/drivers/acpi/dispatcher/dswload.c	2005-02-27 21:04:32.973577559 +0100
@@ -706,9 +706,10 @@
 	ACPI_FUNCTION_TRACE ("ds_load2_end_op");
 
 	op = walk_state->op;
+#ifdef ACPI_DEBUG_OUTPUT
 	ACPI_DEBUG_PRINT ((ACPI_DB_DISPATCH, "Opcode [%s] Op %p State %p\n",
 			walk_state->op_info->name, op, walk_state));
-
+#endif
 	/* Only interested in opcodes that have namespace objects */
 
 	if (!(walk_state->op_info->flags & AML_NSOBJECT)) {
--- x/drivers/acpi/events/evmisc.c.orig	2005-02-24 17:40:31.000000000 +0100
+++ y/drivers/acpi/events/evmisc.c	2005-02-27 21:04:32.974577353 +0100
@@ -132,6 +132,7 @@
 	 * For value 0x80 (Status Change) on the power button or sleep button,
 	 * initiate soft-off or sleep operation?
 	 */
+#ifdef ACPI_DEBUG_OUTPUT
 	ACPI_DEBUG_PRINT ((ACPI_DB_INFO,
 		"Dispatching Notify(%X) on node %p\n", notify_value, node));
 
@@ -143,7 +144,7 @@
 		ACPI_DEBUG_PRINT ((ACPI_DB_INFO, "Notify value: 0x%2.2X **Device Specific**\n",
 				notify_value));
 	}
-
+#endif
 	/* Get the notify object attached to the NS Node */
 
 	obj_desc = acpi_ns_get_attached_object (node);
--- x/drivers/acpi/namespace/nsalloc.c.orig	2005-02-24 17:40:30.000000000 +0100
+++ y/drivers/acpi/namespace/nsalloc.c	2005-02-27 21:04:32.974577353 +0100
@@ -409,9 +409,10 @@
 
 		ACPI_MEM_TRACKING (acpi_gbl_memory_lists[ACPI_MEM_LIST_NSNODE].total_freed++);
 
+#ifdef ACPI_DEBUG_OUTPUT
 		ACPI_DEBUG_PRINT ((ACPI_DB_ALLOCATIONS, "Object %p, Remaining %X\n",
 			child_node, acpi_gbl_current_node_count));
-
+#endif 
 		/*
 		 * Detach an object if there is one, then free the child node
 		 */
--- x/drivers/acpi/parser/psparse.c.orig	2005-02-24 17:39:55.000000000 +0100
+++ y/drivers/acpi/parser/psparse.c	2005-02-27 21:04:32.977576733 +0100
@@ -680,10 +680,12 @@
 			op->common.aml_offset = walk_state->aml_offset;
 
 			if (walk_state->op_info) {
+#ifdef ACPI_DEBUG_OUTPUT
 				ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
 					"Opcode %4.4X [%s] Op %p Aml %p aml_offset %5.5X\n",
 					 (u32) op->common.aml_opcode, walk_state->op_info->name,
 					 op, parser_state->aml, op->common.aml_offset));
+#endif
 			}
 		}
 
--- x/drivers/acpi/utilities/utmisc.c.orig	2005-02-24 17:39:54.000000000 +0100
+++ y/drivers/acpi/utilities/utmisc.c	2005-02-27 21:04:32.977576733 +0100
@@ -736,8 +736,8 @@
 		acpi_gbl_mutex_info[mutex_id].owner_id = this_thread_id;
 	}
 	else {
-		ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Thread %X could not acquire Mutex [%s] %s\n",
-				 this_thread_id, acpi_ut_get_mutex_name (mutex_id),
+		ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Thread %X could not acquire Mutex %s\n",
+				 this_thread_id,
 				 acpi_format_exception (status)));
 	}
 
@@ -783,8 +783,7 @@
 	 */
 	if (acpi_gbl_mutex_info[mutex_id].owner_id == ACPI_MUTEX_NOT_ACQUIRED) {
 		ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
-				"Mutex [%s] is not acquired, cannot release\n",
-				acpi_ut_get_mutex_name (mutex_id)));
+				"Mutex is not acquired, cannot release\n"));
 
 		return (AE_NOT_ACQUIRED);
 	}
@@ -800,10 +799,11 @@
 			if (i == mutex_id) {
 				continue;
 			}
-
-			ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
+			ACPI_DEBUG_PRINT ((ACPI_DB_MUTEX,
 					"Invalid release order: owns [%s], releasing [%s]\n",
-					acpi_ut_get_mutex_name (i), acpi_ut_get_mutex_name (mutex_id)));
+					acpi_ut_get_mutex_name(i), acpi_ut_get_mutex_name (mutex_id)));
+
+			ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid Mutex release order\n"));
 
 			return (AE_RELEASE_DEADLOCK);
 		}
@@ -816,8 +816,8 @@
 	status = acpi_os_signal_semaphore (acpi_gbl_mutex_info[mutex_id].mutex, 1);
 
 	if (ACPI_FAILURE (status)) {
-		ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Thread %X could not release Mutex [%s] %s\n",
-				 this_thread_id, acpi_ut_get_mutex_name (mutex_id),
+		ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Thread %X could not release Mutex %s\n",
+				 this_thread_id, 
 				 acpi_format_exception (status)));
 	}
 	else {
@@ -1477,6 +1477,7 @@
 	acpi_os_printf ("%8s-%04d: *** Warning: ", module_name, line_number);
 }
 
+EXPORT_SYMBOL(acpi_ut_report_warning);
 
 /*******************************************************************************
  *
--- x/drivers/acpi/Kconfig.orig	2005-02-27 21:06:27.541917348 +0100
+++ y/drivers/acpi/Kconfig	2005-02-27 21:06:29.327548586 +0100
@@ -343,4 +343,14 @@
 	 	This is the ACPI generic container driver which supports
 		ACPI0004, PNP0A05 and PNP0A06 devices
 
+config ACPI_DEBUG_LITE
+        bool "Print ACPI errors and warnings"
+        depends on ACPI
+        default n
+        help
+          Full ACPI_DEBUG output slows down the system significantly,
+	  even if not enabled during runtime.
+	  This variable takes care that errors and warnings will still be printed,
+	  but higher debug levels can not be enabled any more during runtime.
+
 endmenu
--- x/include/acpi/acmacros.h.orig	2005-02-24 17:40:30.000000000 +0100
+++ y/include/acpi/acmacros.h	2005-02-27 21:04:32.976576940 +0100
@@ -604,7 +604,18 @@
 #define ACPI_DUMP_PATHNAME(a,b,c,d)
 #define ACPI_DUMP_RESOURCE_LIST(a)
 #define ACPI_DUMP_BUFFER(a,b)
+
+
+#ifdef ACPI_DEBUG_LITE
+/* compiler must optimize, no solution to only integrate
+   this in preprocessing directives found */
+#define ACPI_DEBUG_PRINT_SUB(L, LINE, DB_INFO, A...) (L == ACPI_LV_ERROR || L == ACPI_LV_WARN) ? \
+ (ACPI_REPORT_WARNING ((A))) : (0)
+#define ACPI_DEBUG_PRINT(pl)  ACPI_DEBUG_PRINT_SUB pl
+#else
 #define ACPI_DEBUG_PRINT(pl)
+#endif
+
 #define ACPI_DEBUG_PRINT_RAW(pl)
 #define ACPI_BREAK_MSG(a)
 
--- x/include/acpi/acutils.h.orig	2005-02-24 17:39:46.000000000 +0100
+++ y/include/acpi/acutils.h	2005-02-27 21:04:32.978576527 +0100
@@ -45,6 +45,8 @@
 #define _ACUTILS_H
 
 
+#include <linux/module.h>
+
 typedef
 acpi_status (*acpi_pkg_callback) (
 	u8                              object_type,

                 reply	other threads:[~2005-02-28  0:18 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4222633B.4030704@suse.de \
    --to=trenn-l3a5bk7wagm@public.gmane.org \
    --cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox