LKML Archive mirror
 help / color / mirror / Atom feed
* [PATCH 3/5] pci: using pci_printk
  2008-09-16  8:52 [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v2 Yinghai Lu
@ 2008-09-16  8:52 ` Yinghai Lu
  2008-09-16 10:20   ` Alexey Dobriyan
  0 siblings, 1 reply; 15+ messages in thread
From: Yinghai Lu @ 2008-09-16  8:52 UTC (permalink / raw
  To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin, Andrew Morton
  Cc: linux-kernel, Yinghai Lu

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>

---
 drivers/pci/probe.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Index: linux-2.6/drivers/pci/probe.c
===================================================================
--- linux-2.6.orig/drivers/pci/probe.c
+++ linux-2.6/drivers/pci/probe.c
@@ -304,7 +304,7 @@ static int __pci_read_base(struct pci_de
 		} else {
 			res->start = l64;
 			res->end = l64 + sz64;
-			printk(KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
+			pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
 				 pci_name(dev), pos, res->start, res->end);
 		}
 	} else {
@@ -315,7 +315,7 @@ static int __pci_read_base(struct pci_de
 
 		res->start = l;
 		res->end = l + sz;
-		printk(KERN_DEBUG "PCI: %s reg %x %s: [%llx, %llx]\n", pci_name(dev),
+		pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: %s reg %x %s: [%llx, %llx]\n", pci_name(dev),
 			 pos, (res->flags & IORESOURCE_IO) ? "io port":"32bit mmio",
 			 res->start, res->end);
 	}
@@ -388,7 +388,7 @@ void __devinit pci_read_bridge_bases(str
 			res->start = base;
 		if (!res->end)
 			res->end = limit + 0xfff;
-		printk(KERN_DEBUG "PCI: bridge %s io port: [%llx, %llx]\n",
+		pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: bridge %s io port: [%llx, %llx]\n",
 				 pci_name(dev), res->start, res->end);
 	}
 
@@ -401,7 +401,7 @@ void __devinit pci_read_bridge_bases(str
 		res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM;
 		res->start = base;
 		res->end = limit + 0xfffff;
-		printk(KERN_DEBUG "PCI: bridge %s 32bit mmio: [%llx, %llx]\n",
+		pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: bridge %s 32bit mmio: [%llx, %llx]\n",
 				 pci_name(dev), res->start, res->end);
 	}
 
@@ -438,7 +438,7 @@ void __devinit pci_read_bridge_bases(str
 		res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM | IORESOURCE_PREFETCH;
 		res->start = base;
 		res->end = limit + 0xfffff;
-		printk(KERN_DEBUG "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n",
+		pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n",
 				 pci_name(dev), (res->flags & PCI_PREF_RANGE_TYPE_64)?"64":"32",
 				 res->start, res->end);
 	}

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/5] pci: using pci_printk
  2008-09-16  8:52 ` [PATCH 3/5] pci: using pci_printk Yinghai Lu
@ 2008-09-16 10:20   ` Alexey Dobriyan
  2008-09-16 17:18     ` Robert Richter
  2008-09-17 21:43     ` Alex Chiang
  0 siblings, 2 replies; 15+ messages in thread
From: Alexey Dobriyan @ 2008-09-16 10:20 UTC (permalink / raw
  To: Yinghai Lu
  Cc: Ingo Molnar, Thomas Gleixner, H. Peter Anvin, Andrew Morton,
	linux-kernel

On Tue, Sep 16, 2008 at 01:52:52AM -0700, Yinghai Lu wrote:
> --- linux-2.6.orig/drivers/pci/probe.c
> +++ linux-2.6/drivers/pci/probe.c
> @@ -304,7 +304,7 @@ static int __pci_read_base(struct pci_de

> -			printk(KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
> +			pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
				   ^^^^^^^^^^^^^^^^^^^^^^^^^^

Brilliant, simply brilliant!

Printk haters club is definitely creative, no questions.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/5] pci: using pci_printk
  2008-09-16 10:20   ` Alexey Dobriyan
@ 2008-09-16 17:18     ` Robert Richter
  2008-09-17 21:43     ` Alex Chiang
  1 sibling, 0 replies; 15+ messages in thread
From: Robert Richter @ 2008-09-16 17:18 UTC (permalink / raw
  To: Alexey Dobriyan
  Cc: Yinghai Lu, Ingo Molnar, Thomas Gleixner, H. Peter Anvin,
	Andrew Morton, linux-kernel

On 16.09.08 14:20:52, Alexey Dobriyan wrote:
> On Tue, Sep 16, 2008 at 01:52:52AM -0700, Yinghai Lu wrote:
> > --- linux-2.6.orig/drivers/pci/probe.c
> > +++ linux-2.6/drivers/pci/probe.c
> > @@ -304,7 +304,7 @@ static int __pci_read_base(struct pci_de
> 
> > -			printk(KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
> > +			pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
> 				   ^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> Brilliant, simply brilliant!

Wouldn't it be much simpler to have an i/f as for dev_dbg() and also
run the log level check only for debug messages? And, the dev_dbg()
macro seems to have code that can be binary pached (?) to enable it if
the compile option is not set.

-Robert

#define dev_dbg(dev, format, arg...)            \
        ({ if (0) dev_printk(KERN_DEBUG, dev, format, ##arg); 0; })


-- 
Advanced Micro Devices, Inc.
Operating System Research Center
email: robert.richter@amd.com


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 0/5] loglevel=pci:7,acpi:6 support
@ 2008-09-16 18:01 Yinghai Lu
  2008-09-16 18:01 ` [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v3 Yinghai Lu
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Yinghai Lu @ 2008-09-16 18:01 UTC (permalink / raw
  To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin, Andrew Morton
  Cc: linux-kernel, Yinghai Lu

usage:
	in .c to have
		DEFINE_LOGLEVEL_SETUP(pci, "pci:");
	in .h to have
		DECLARE_LOGLEVE(pci);
	then could use
		pci_printk(KERN_LOG_DEBUG, fmt, ...);
	and command line
		loglevel=pci:7

you can add different printk to different files of one subsys if you like
not just one susbsys one tag, and don't need to update kernel.h to add more tags

YH


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v3
  2008-09-16 18:01 [PATCH 0/5] loglevel=pci:7,acpi:6 support Yinghai Lu
@ 2008-09-16 18:01 ` Yinghai Lu
  2008-09-16 19:02   ` Marcin Slusarz
  2008-09-16 18:01 ` [PATCH 2/5] pci: add pci_printk v3 Yinghai Lu
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 15+ messages in thread
From: Yinghai Lu @ 2008-09-16 18:01 UTC (permalink / raw
  To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin, Andrew Morton
  Cc: linux-kernel, Yinghai Lu

so could make subsys easy to add loglevel and xxx_printk
v2: make it more genric, so subsys user only need to two line macro
v3: add back nameStr, so could find out iommu: and iommu_gart: and etc

usage:
	in .c to have
		DEFINE_LOGLEVEL_SETUP(pci, "pci:");
	in .h to have
		DECLARE_LOGLEVE(pci);
	then could use
		pci_printk(KERN_LOG_DEBUG, fmt, ...);
	and command line
		loglevel=pci:7

you can add different printk to different files of one subsys if you like

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
---
 arch/x86/kernel/vmlinux_32.lds.S  |    1 +
 arch/x86/kernel/vmlinux_64.lds.S  |    2 ++
 include/asm-generic/vmlinux.lds.h |    8 ++++++++
 include/linux/init.h              |   36 ++++++++++++++++++++++++++++++++++++
 include/linux/kernel.h            |    9 +++++++++
 init/main.c                       |   27 ++++++++++++++++++++++++++-
 6 files changed, 82 insertions(+), 1 deletion(-)

Index: linux-2.6/arch/x86/kernel/vmlinux_32.lds.S
===================================================================
--- linux-2.6.orig/arch/x86/kernel/vmlinux_32.lds.S
+++ linux-2.6/arch/x86/kernel/vmlinux_32.lds.S
@@ -145,6 +145,7 @@ SECTIONS
 	*(.x86_cpu_dev.init)
 	__x86_cpu_dev_end = .;
   }
+  LOGLEVEL_SETUP_INIT(8)
   DYN_ARRAY_INIT(8)
   SECURITY_INIT
   . = ALIGN(4);
Index: linux-2.6/arch/x86/kernel/vmlinux_64.lds.S
===================================================================
--- linux-2.6.orig/arch/x86/kernel/vmlinux_64.lds.S
+++ linux-2.6/arch/x86/kernel/vmlinux_64.lds.S
@@ -174,6 +174,8 @@ SECTIONS
   }
   __x86_cpu_dev_end = .;
 
+  LOGLEVEL_SETUP_INIT(8)
+
   DYN_ARRAY_INIT(8)
 
   SECURITY_INIT
Index: linux-2.6/include/asm-generic/vmlinux.lds.h
===================================================================
--- linux-2.6.orig/include/asm-generic/vmlinux.lds.h
+++ linux-2.6/include/asm-generic/vmlinux.lds.h
@@ -222,6 +222,14 @@
  * All archs are supposed to use RO_DATA() */
 #define RODATA RO_DATA(4096)
 
+#define LOGLEVEL_SETUP_INIT(align)					\
+	. = ALIGN((align));						\
+	.loglevel_setup.init : AT(ADDR(.loglevel_setup.init) - LOAD_OFFSET) {	\
+		VMLINUX_SYMBOL(__loglevel_setup_start) = .;		\
+		*(.loglevel_setup.init)					\
+		VMLINUX_SYMBOL(__loglevel_setup_end) = .;		\
+	}
+
 #define DYN_ARRAY_INIT(align)							\
 	. = ALIGN((align));						\
 	.dyn_array.init : AT(ADDR(.dyn_array.init) - LOAD_OFFSET) {	\
Index: linux-2.6/include/linux/init.h
===================================================================
--- linux-2.6.orig/include/linux/init.h
+++ linux-2.6/include/linux/init.h
@@ -251,6 +251,42 @@ struct obs_kernel_param {
 /* Relies on boot_command_line being set */
 void __init parse_early_param(void);
 
+#define DECLARE_LOGLEVEL(nameX)					\
+	extern int loglevel_##nameX;				\
+	extern int nameX##_printk(int v, const char *fmt, ...)
+
+struct loglevel_setup {
+	char *name;
+	void (*setup)(char *);
+};
+
+extern struct loglevel_setup *__loglevel_setup_start[], *__loglevel_setup_end[];
+
+#define DEFINE_LOGLEVEL_SETUP(nameX, nameStr)				\
+	int loglevel_##nameX;					\
+	int nameX##_printk(int v, const char *fmt, ...)		\
+	{							\
+		va_list args;					\
+		int r;						\
+		if (v > loglevel_##nameX)			\
+			return 0;				\
+		va_start(args, fmt);				\
+		r = vprintk(fmt, args);				\
+		va_end(args);					\
+		return r;					\
+	}							\
+	static void __init setup_loglevel_##nameX(char *str)	\
+	{							\
+		get_option(&str, &loglevel_##nameX);		\
+	}							\
+	static struct loglevel_setup __loglevel_setup_##nameX __initdata = \
+	{	.name = nameStr,					\
+		.setup = setup_loglevel_##nameX,		\
+	};							\
+	static struct loglevel_setup *__loglevel_setup_ptr_##nameX __used \
+	__attribute__((__section__(".loglevel_setup.init"))) =	\
+		&__loglevel_setup_##nameX
+
 struct dyn_array {
 	void **name;
 	unsigned long size;
Index: linux-2.6/include/linux/kernel.h
===================================================================
--- linux-2.6.orig/include/linux/kernel.h
+++ linux-2.6/include/linux/kernel.h
@@ -104,6 +104,15 @@ extern int console_printk[];
 #define minimum_console_loglevel (console_printk[2])
 #define default_console_loglevel (console_printk[3])
 
+#define	KERN_LOG_EMERG	0	/* system is unusable			*/
+#define	KERN_LOG_ALERT	1	/* action must be taken immediately	*/
+#define	KERN_LOG_CRIT	2	/* critical conditions			*/
+#define	KERN_LOG_ERR	3	/* error conditions			*/
+#define	KERN_LOG_WARNING	4	/* warning conditions			*/
+#define	KERN_LOG_NOTICE	5	/* normal but significant condition	*/
+#define	KERN_LOG_INFO	6	/* informational			*/
+#define	KERN_LOG_DEBUG	7	/* debug-level messages			*/
+
 struct completion;
 struct pt_regs;
 struct user;
Index: linux-2.6/init/main.c
===================================================================
--- linux-2.6.orig/init/main.c
+++ linux-2.6/init/main.c
@@ -248,9 +248,34 @@ static int __init quiet_kernel(char *str
 early_param("debug", debug_kernel);
 early_param("quiet", quiet_kernel);
 
+static char __init *real_loglevel_setup(char *str)
+{
+	struct loglevel_setup **la;
+
+	for (la = __loglevel_setup_start ; la < __loglevel_setup_end; la++) {
+		struct loglevel_setup *l = *la;
+		int len = strlen(l->name);
+
+		if (!strncmp(str, l->name, len)) {
+			l->setup(str + len);
+			str = NULL;
+			break;
+		}
+	}
+
+	return str;
+}
 static int __init loglevel(char *str)
 {
-	get_option(&str, &console_loglevel);
+	while (str) {
+		char *k = strchr(str, ',');
+		if (k)
+			*k++ = 0;
+		if (*str && (str = real_loglevel_setup(str)) && *str) {
+			get_option(&str, &console_loglevel);
+		}
+		str = k;
+	}
 	return 0;
 }
 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 2/5] pci: add pci_printk v3
  2008-09-16 18:01 [PATCH 0/5] loglevel=pci:7,acpi:6 support Yinghai Lu
  2008-09-16 18:01 ` [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v3 Yinghai Lu
@ 2008-09-16 18:01 ` Yinghai Lu
  2008-09-16 18:01 ` [PATCH 3/5] pci: using pci_printk Yinghai Lu
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 15+ messages in thread
From: Yinghai Lu @ 2008-09-16 18:01 UTC (permalink / raw
  To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin, Andrew Morton
  Cc: linux-kernel, Yinghai Lu

use DEFINE_LOGLEVEL_SETUP to set loglevel for pci
v2: two lines only
v3: use <pci, "pci:"> instead

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
---
 drivers/pci/pci.c   |    2 ++
 include/linux/pci.h |    2 ++
 2 files changed, 4 insertions(+)

Index: linux-2.6/drivers/pci/pci.c
===================================================================
--- linux-2.6.orig/drivers/pci/pci.c
+++ linux-2.6/drivers/pci/pci.c
@@ -1953,6 +1953,8 @@ static int __devinit pci_setup(char *str
 }
 early_param("pci", pci_setup);
 
+DEFINE_LOGLEVEL_SETUP(pci, "pci:");
+
 device_initcall_sync(pci_init);
 
 EXPORT_SYMBOL(pci_reenable_device);
Index: linux-2.6/include/linux/pci.h
===================================================================
--- linux-2.6.orig/include/linux/pci.h
+++ linux-2.6/include/linux/pci.h
@@ -55,6 +55,8 @@
 /* Include the ID list */
 #include <linux/pci_ids.h>
 
+DECLARE_LOGLEVEL(pci);
+
 /* pci_slot represents a physical slot */
 struct pci_slot {
 	struct pci_bus *bus;		/* The bus this slot is on */

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 3/5] pci: using pci_printk
  2008-09-16 18:01 [PATCH 0/5] loglevel=pci:7,acpi:6 support Yinghai Lu
  2008-09-16 18:01 ` [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v3 Yinghai Lu
  2008-09-16 18:01 ` [PATCH 2/5] pci: add pci_printk v3 Yinghai Lu
@ 2008-09-16 18:01 ` Yinghai Lu
  2008-09-16 18:01 ` [PATCH 4/5] acpi: add acpi_printk v2 Yinghai Lu
  2008-09-16 18:01 ` [PATCH 5/5] apci: dump slit v3 Yinghai Lu
  4 siblings, 0 replies; 15+ messages in thread
From: Yinghai Lu @ 2008-09-16 18:01 UTC (permalink / raw
  To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin, Andrew Morton
  Cc: linux-kernel, Yinghai Lu

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>

---
 drivers/pci/probe.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Index: linux-2.6/drivers/pci/probe.c
===================================================================
--- linux-2.6.orig/drivers/pci/probe.c
+++ linux-2.6/drivers/pci/probe.c
@@ -304,7 +304,7 @@ static int __pci_read_base(struct pci_de
 		} else {
 			res->start = l64;
 			res->end = l64 + sz64;
-			printk(KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
+			pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
 				 pci_name(dev), pos, res->start, res->end);
 		}
 	} else {
@@ -315,7 +315,7 @@ static int __pci_read_base(struct pci_de
 
 		res->start = l;
 		res->end = l + sz;
-		printk(KERN_DEBUG "PCI: %s reg %x %s: [%llx, %llx]\n", pci_name(dev),
+		pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: %s reg %x %s: [%llx, %llx]\n", pci_name(dev),
 			 pos, (res->flags & IORESOURCE_IO) ? "io port":"32bit mmio",
 			 res->start, res->end);
 	}
@@ -388,7 +388,7 @@ void __devinit pci_read_bridge_bases(str
 			res->start = base;
 		if (!res->end)
 			res->end = limit + 0xfff;
-		printk(KERN_DEBUG "PCI: bridge %s io port: [%llx, %llx]\n",
+		pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: bridge %s io port: [%llx, %llx]\n",
 				 pci_name(dev), res->start, res->end);
 	}
 
@@ -401,7 +401,7 @@ void __devinit pci_read_bridge_bases(str
 		res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM;
 		res->start = base;
 		res->end = limit + 0xfffff;
-		printk(KERN_DEBUG "PCI: bridge %s 32bit mmio: [%llx, %llx]\n",
+		pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: bridge %s 32bit mmio: [%llx, %llx]\n",
 				 pci_name(dev), res->start, res->end);
 	}
 
@@ -438,7 +438,7 @@ void __devinit pci_read_bridge_bases(str
 		res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM | IORESOURCE_PREFETCH;
 		res->start = base;
 		res->end = limit + 0xfffff;
-		printk(KERN_DEBUG "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n",
+		pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n",
 				 pci_name(dev), (res->flags & PCI_PREF_RANGE_TYPE_64)?"64":"32",
 				 res->start, res->end);
 	}

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 4/5] acpi: add acpi_printk v2
  2008-09-16 18:01 [PATCH 0/5] loglevel=pci:7,acpi:6 support Yinghai Lu
                   ` (2 preceding siblings ...)
  2008-09-16 18:01 ` [PATCH 3/5] pci: using pci_printk Yinghai Lu
@ 2008-09-16 18:01 ` Yinghai Lu
  2008-09-16 18:01 ` [PATCH 5/5] apci: dump slit v3 Yinghai Lu
  4 siblings, 0 replies; 15+ messages in thread
From: Yinghai Lu @ 2008-09-16 18:01 UTC (permalink / raw
  To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin, Andrew Morton
  Cc: linux-kernel, Yinghai Lu

use DEFINE_LOGLEVEL_SETUP to set loglevel for acpi
v2: use <acpi, "acpi:"> instead

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>

---
 drivers/acpi/osl.c   |    2 ++
 include/linux/acpi.h |    1 +
 2 files changed, 3 insertions(+)

Index: linux-2.6/drivers/acpi/osl.c
===================================================================
--- linux-2.6.orig/drivers/acpi/osl.c
+++ linux-2.6/drivers/acpi/osl.c
@@ -75,6 +75,8 @@ EXPORT_SYMBOL(acpi_in_debugger);
 extern char line_buf[80];
 #endif				/*ENABLE_DEBUGGER */
 
+DEFINE_LOGLEVEL_SETUP(acpi, "acpi:");
+
 static unsigned int acpi_irq_irq;
 static acpi_osd_handler acpi_irq_handler;
 static void *acpi_irq_context;
Index: linux-2.6/include/linux/acpi.h
===================================================================
--- linux-2.6.orig/include/linux/acpi.h
+++ linux-2.6/include/linux/acpi.h
@@ -43,6 +43,7 @@
 #include <asm/acpi.h>
 #include <linux/dmi.h>
 
+DECLARE_LOGLEVEL(acpi);
 
 enum acpi_irq_model_id {
 	ACPI_IRQ_MODEL_PIC = 0,

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 5/5] apci: dump slit v3
  2008-09-16 18:01 [PATCH 0/5] loglevel=pci:7,acpi:6 support Yinghai Lu
                   ` (3 preceding siblings ...)
  2008-09-16 18:01 ` [PATCH 4/5] acpi: add acpi_printk v2 Yinghai Lu
@ 2008-09-16 18:01 ` Yinghai Lu
  4 siblings, 0 replies; 15+ messages in thread
From: Yinghai Lu @ 2008-09-16 18:01 UTC (permalink / raw
  To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin, Andrew Morton
  Cc: linux-kernel, Yinghai Lu

v2: using boot_printk
v3: using acpi_printk

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>

---
 drivers/acpi/numa.c |    8 ++++++++
 1 file changed, 8 insertions(+)

Index: linux-2.6/drivers/acpi/numa.c
===================================================================
--- linux-2.6.orig/drivers/acpi/numa.c
+++ linux-2.6/drivers/acpi/numa.c
@@ -150,6 +150,14 @@ static __init int slit_valid(struct acpi
 {
 	int i, j;
 	int d = slit->locality_count;
+	acpi_printk(KERN_LOG_DEBUG, KERN_DEBUG "ACPI: SLIT: nodes = %d\n", d);
+	for (i = 0; i < d; i++) {
+		for (j = 0; j < d; j++)  {
+			u8 val = slit->entry[d*i + j];
+			acpi_printk(KERN_LOG_DEBUG, " %d", val);
+		}
+		acpi_printk(KERN_LOG_DEBUG, "\n");
+	}
 	for (i = 0; i < d; i++) {
 		for (j = 0; j < d; j++)  {
 			u8 val = slit->entry[d*i + j];

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v3
  2008-09-16 18:01 ` [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v3 Yinghai Lu
@ 2008-09-16 19:02   ` Marcin Slusarz
  2008-09-16 21:04     ` Yinghai Lu
  0 siblings, 1 reply; 15+ messages in thread
From: Marcin Slusarz @ 2008-09-16 19:02 UTC (permalink / raw
  To: Yinghai Lu
  Cc: Ingo Molnar, Thomas Gleixner, H. Peter Anvin, Andrew Morton,
	linux-kernel

On Tue, Sep 16, 2008 at 11:01:21AM -0700, Yinghai Lu wrote:
> --- linux-2.6.orig/include/linux/kernel.h
> +++ linux-2.6/include/linux/kernel.h
> @@ -104,6 +104,15 @@ extern int console_printk[];
>  #define minimum_console_loglevel (console_printk[2])
>  #define default_console_loglevel (console_printk[3])
>  
> +#define	KERN_LOG_EMERG	0	/* system is unusable			*/
> +#define	KERN_LOG_ALERT	1	/* action must be taken immediately	*/
> +#define	KERN_LOG_CRIT	2	/* critical conditions			*/
> +#define	KERN_LOG_ERR	3	/* error conditions			*/
> +#define	KERN_LOG_WARNING	4	/* warning conditions			*/
> +#define	KERN_LOG_NOTICE	5	/* normal but significant condition	*/
> +#define	KERN_LOG_INFO	6	/* informational			*/
> +#define	KERN_LOG_DEBUG	7	/* debug-level messages			*/
> +
>  struct completion;
>  struct pt_regs;
>  struct user;

maybe
#define KERN_LOG_EMERG 0,KERN_EMERG
#define KERN_LOG_ALERT 1,KERN_ALERT
...
?

or better - create printk2(level, fmt) which prints "<", level, ">", fmt
and wrap it with pci_printk / acpi_printk?

Marcin

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v3
  2008-09-16 19:02   ` Marcin Slusarz
@ 2008-09-16 21:04     ` Yinghai Lu
  2008-09-16 21:18       ` H. Peter Anvin
  0 siblings, 1 reply; 15+ messages in thread
From: Yinghai Lu @ 2008-09-16 21:04 UTC (permalink / raw
  To: Marcin Slusarz
  Cc: Ingo Molnar, Thomas Gleixner, H. Peter Anvin, Andrew Morton,
	linux-kernel

On Tue, Sep 16, 2008 at 12:02 PM, Marcin Slusarz
<marcin.slusarz@gmail.com> wrote:
> On Tue, Sep 16, 2008 at 11:01:21AM -0700, Yinghai Lu wrote:
>> --- linux-2.6.orig/include/linux/kernel.h
>> +++ linux-2.6/include/linux/kernel.h
>> @@ -104,6 +104,15 @@ extern int console_printk[];
>>  #define minimum_console_loglevel (console_printk[2])
>>  #define default_console_loglevel (console_printk[3])
>>
>> +#define      KERN_LOG_EMERG  0       /* system is unusable                   */
>> +#define      KERN_LOG_ALERT  1       /* action must be taken immediately     */
>> +#define      KERN_LOG_CRIT   2       /* critical conditions                  */
>> +#define      KERN_LOG_ERR    3       /* error conditions                     */
>> +#define      KERN_LOG_WARNING        4       /* warning conditions                   */
>> +#define      KERN_LOG_NOTICE 5       /* normal but significant condition     */
>> +#define      KERN_LOG_INFO   6       /* informational                        */
>> +#define      KERN_LOG_DEBUG  7       /* debug-level messages                 */
>> +
>>  struct completion;
>>  struct pt_regs;
>>  struct user;
>
> maybe
> #define KERN_LOG_EMERG 0,KERN_EMERG
> #define KERN_LOG_ALERT 1,KERN_ALERT
> ...
> ?
>
> or better - create printk2(level, fmt) which prints "<", level, ">", fmt
> and wrap it with pci_printk / acpi_printk?
>

will come out one new version that hpa likes

printk(KERN_PCI KERN_DEBUG "sadfasf\n");

YH

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v3
  2008-09-16 21:04     ` Yinghai Lu
@ 2008-09-16 21:18       ` H. Peter Anvin
  2008-09-16 21:28         ` Yinghai Lu
  0 siblings, 1 reply; 15+ messages in thread
From: H. Peter Anvin @ 2008-09-16 21:18 UTC (permalink / raw
  To: Yinghai Lu
  Cc: Marcin Slusarz, Ingo Molnar, Thomas Gleixner, Andrew Morton,
	linux-kernel

Yinghai Lu wrote:
> 
> will come out one new version that hpa likes
> 
> printk(KERN_PCI KERN_DEBUG "sadfasf\n");
> 

Come to think about it, it might help migration pains if we put the 
prefixes in the opposite order (KERN_DEBUG KERN_PCI).

	-hpa

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v3
  2008-09-16 21:18       ` H. Peter Anvin
@ 2008-09-16 21:28         ` Yinghai Lu
  2008-09-16 21:55           ` H. Peter Anvin
  0 siblings, 1 reply; 15+ messages in thread
From: Yinghai Lu @ 2008-09-16 21:28 UTC (permalink / raw
  To: H. Peter Anvin
  Cc: Marcin Slusarz, Ingo Molnar, Thomas Gleixner, Andrew Morton,
	linux-kernel

On Tue, Sep 16, 2008 at 2:18 PM, H. Peter Anvin <hpa@zytor.com> wrote:
> Yinghai Lu wrote:
>>
>> will come out one new version that hpa likes
>>
>> printk(KERN_PCI KERN_DEBUG "sadfasf\n");
>>
>
> Come to think about it, it might help migration pains if we put the prefixes
> in the opposite order (KERN_DEBUG KERN_PCI).
>
according to the code flow, these two is the same... will double check it.

YH

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v3
  2008-09-16 21:28         ` Yinghai Lu
@ 2008-09-16 21:55           ` H. Peter Anvin
  0 siblings, 0 replies; 15+ messages in thread
From: H. Peter Anvin @ 2008-09-16 21:55 UTC (permalink / raw
  To: Yinghai Lu
  Cc: Marcin Slusarz, Ingo Molnar, Thomas Gleixner, Andrew Morton,
	linux-kernel

Yinghai Lu wrote:
> On Tue, Sep 16, 2008 at 2:18 PM, H. Peter Anvin <hpa@zytor.com> wrote:
>> Yinghai Lu wrote:
>>> will come out one new version that hpa likes
>>>
>>> printk(KERN_PCI KERN_DEBUG "sadfasf\n");
>>>
>> Come to think about it, it might help migration pains if we put the prefixes
>> in the opposite order (KERN_DEBUG KERN_PCI).
>>
> according to the code flow, these two is the same... will double check it.
> 

The difference is that things that read the kernel log in userspace will 
be able to make partial sense of the latter, but not the former.  It 
will thus make the transition smoother.

	-hpa

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/5] pci: using pci_printk
  2008-09-16 10:20   ` Alexey Dobriyan
  2008-09-16 17:18     ` Robert Richter
@ 2008-09-17 21:43     ` Alex Chiang
  1 sibling, 0 replies; 15+ messages in thread
From: Alex Chiang @ 2008-09-17 21:43 UTC (permalink / raw
  To: Alexey Dobriyan
  Cc: Yinghai Lu, Ingo Molnar, Thomas Gleixner, H. Peter Anvin,
	Andrew Morton, linux-kernel, bjorn.helgaas

* Alexey Dobriyan <adobriyan@gmail.com>:
> On Tue, Sep 16, 2008 at 01:52:52AM -0700, Yinghai Lu wrote:
> > --- linux-2.6.orig/drivers/pci/probe.c
> > +++ linux-2.6/drivers/pci/probe.c
> > @@ -304,7 +304,7 @@ static int __pci_read_base(struct pci_de
> 
> > -			printk(KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
> > +			pci_printk(KERN_LOG_DEBUG, KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
> 				   ^^^^^^^^^^^^^^^^^^^^^^^^^^
> Brilliant, simply brilliant!

Yeah, that's ugly.

> Printk haters club is definitely creative, no questions.

Bjorn might have some useful advice here.

Also, didn't we recently get all the PCI printk output to
resemble what lspci shows us?

/ac


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2008-09-17 21:43 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-16 18:01 [PATCH 0/5] loglevel=pci:7,acpi:6 support Yinghai Lu
2008-09-16 18:01 ` [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v3 Yinghai Lu
2008-09-16 19:02   ` Marcin Slusarz
2008-09-16 21:04     ` Yinghai Lu
2008-09-16 21:18       ` H. Peter Anvin
2008-09-16 21:28         ` Yinghai Lu
2008-09-16 21:55           ` H. Peter Anvin
2008-09-16 18:01 ` [PATCH 2/5] pci: add pci_printk v3 Yinghai Lu
2008-09-16 18:01 ` [PATCH 3/5] pci: using pci_printk Yinghai Lu
2008-09-16 18:01 ` [PATCH 4/5] acpi: add acpi_printk v2 Yinghai Lu
2008-09-16 18:01 ` [PATCH 5/5] apci: dump slit v3 Yinghai Lu
  -- strict thread matches above, loose matches on Subject: below --
2008-09-16  8:52 [PATCH 1/5] add DEFINE_LOGLEVEL_SETUP v2 Yinghai Lu
2008-09-16  8:52 ` [PATCH 3/5] pci: using pci_printk Yinghai Lu
2008-09-16 10:20   ` Alexey Dobriyan
2008-09-16 17:18     ` Robert Richter
2008-09-17 21:43     ` Alex Chiang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).