Skip to contentSkip to conversation

acpi: don't load acpi_cpufreq if acpi=off

PATCH Applied Yinghai Lu 5 participants 15 messages Sep 25, 2008

Subsystems (7)
Memory management x86 ACPI PCI +3 more subsystems
lore
Share & tools
lore

Yinghai Lu

author
#0 lore raw

PATCH 1/7 acpi: don't load acpi_cpufreq if acpi=off

---
 arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c +3 -0
index dd097b8..9943b4c 100644
@@ -779,6 +779,9 @@ static int __init acpi_cpufreq_init(void)
 {
 	int ret;
 
+	if (acpi_disabled)
+		return 0;
+
 	dprintk("acpi_cpufreq_init\n");
 
 	ret = acpi_cpufreq_early_init();
Signature · 1 line
1.5.6
author
#1 lore raw

PATCH 2/7 acpi: remove have_arch_parse_srat in acpi.h

32bit don't need that anymore

---
 include/linux/acpi.h |    8 --------
 1 files changed, 0 insertions(+), 8 deletions(-)
include/linux/acpi.h +0 -8
index 4d5ec43..8eefaa9 100644
@@ -95,18 +95,10 @@ int acpi_parse_mcfg (struct acpi_table_header *header);
 void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
 
 /* the following four functions are architecture-dependent */
-#ifdef CONFIG_HAVE_ARCH_PARSE_SRAT
-#define NR_NODE_MEMBLKS MAX_NUMNODES
-#define acpi_numa_slit_init(slit) do {} while (0)
-#define acpi_numa_processor_affinity_init(pa) do {} while (0)
-#define acpi_numa_memory_affinity_init(ma) do {} while (0)
-#define acpi_numa_arch_fixup() do {} while (0)
-#else
 void acpi_numa_slit_init (struct acpi_table_slit *slit);
 void acpi_numa_processor_affinity_init (struct acpi_srat_cpu_affinity *pa);
 void acpi_numa_memory_affinity_init (struct acpi_srat_mem_affinity *ma);
 void acpi_numa_arch_fixup(void);
-#endif
 
 #ifdef CONFIG_ACPI_HOTPLUG_CPU
 /* Arch dependent functions for cpu hotplug support */
Signature · 1 line
1.5.6
#2 lore raw

Re: [PATCH 2/7] acpi: remove have_arch_parse_srat in acpi.h

Quoted 1 line · Yinghai Lu

32bit don't need that anymore

I don't understand the connection between this commit log and the patch below.

Quoted 28 lines
---
 include/linux/acpi.h |    8 --------
 1 files changed, 0 insertions(+), 8 deletions(-)
include/linux/acpi.h +0 -8
index 4d5ec43..8eefaa9 100644
@@ -95,18 +95,10 @@ int acpi_parse_mcfg (struct acpi_table_header *header);
 void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
 
 /* the following four functions are architecture-dependent */
-#ifdef CONFIG_HAVE_ARCH_PARSE_SRAT
-#define NR_NODE_MEMBLKS MAX_NUMNODES
-#define acpi_numa_slit_init(slit) do {} while (0)
-#define acpi_numa_processor_affinity_init(pa) do {} while (0)
-#define acpi_numa_memory_affinity_init(ma) do {} while (0)
-#define acpi_numa_arch_fixup() do {} while (0)
-#else
 void acpi_numa_slit_init (struct acpi_table_slit *slit);
 void acpi_numa_processor_affinity_init (struct acpi_srat_cpu_affinity *pa);
 void acpi_numa_memory_affinity_init (struct acpi_srat_mem_affinity *ma);
 void acpi_numa_arch_fixup(void);
-#endif
 
 #ifdef CONFIG_ACPI_HOTPLUG_CPU
 /* Arch dependent functions for cpu hotplug support */
#3 lore raw

Re: [PATCH 2/7] acpi: remove have_arch_parse_srat in acpi.h

Quoted 32 lines · Bjorn Helgaas
Quoted 1 line · Yinghai Lu

32bit don't need that anymore

I don't understand the connection between this commit log and the patch below.

Quoted 26 lines
---
 include/linux/acpi.h |    8 --------
 1 files changed, 0 insertions(+), 8 deletions(-)
include/linux/acpi.h +0 -8
index 4d5ec43..8eefaa9 100644
@@ -95,18 +95,10 @@ int acpi_parse_mcfg (struct acpi_table_header *header);
 void acpi_table_print_madt_entry (struct acpi_subtable_header *madt);
 
 /* the following four functions are architecture-dependent */
-#ifdef CONFIG_HAVE_ARCH_PARSE_SRAT
-#define NR_NODE_MEMBLKS MAX_NUMNODES
-#define acpi_numa_slit_init(slit) do {} while (0)
-#define acpi_numa_processor_affinity_init(pa) do {} while (0)
-#define acpi_numa_memory_affinity_init(ma) do {} while (0)
-#define acpi_numa_arch_fixup() do {} while (0)
-#else
 void acpi_numa_slit_init (struct acpi_table_slit *slit);
 void acpi_numa_processor_affinity_init (struct acpi_srat_cpu_affinity *pa);
 void acpi_numa_memory_affinity_init (struct acpi_srat_mem_affinity *ma);
 void acpi_numa_arch_fixup(void);
-#endif
 
Quoted 3 lines

include/linux/acpi.h int acpi_parse_mcfg (struct acpi_table_header *header); · line 104

Quoted 2 lines
include/linux/acpi.h +0 -0
 #ifdef CONFIG_ACPI_HOTPLUG_CPU
 /* Arch dependent functions for cpu hotplug support */

there was some workaround for 32bit numa (srat processing), and we removed those workaround, and make 32bit more like 64bit.

now HAVE_ARCH_PARSE_SRAT is not defined in any place.

YH

author
#4 lore raw

PATCH 3/7 pci: using %pF in quirks.c

In reply to Yinghai Lu
---
 drivers/pci/quirks.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
drivers/pci/quirks.c +1 -2
index 1f26712..addf2db 100644
@@ -1689,8 +1689,7 @@ static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_f
 		if ((f->vendor == dev->vendor || f->vendor == (u16) PCI_ANY_ID) &&
  		    (f->device == dev->device || f->device == (u16) PCI_ANY_ID)) {
 #ifdef DEBUG
-			dev_dbg(&dev->dev, "calling ");
-			print_fn_descriptor_symbol("%s\n", f->hook);
+			dev_dbg(&dev->dev, "calling %pF\n", f->hook);
 #endif
 			f->hook(dev);
 		}
Signature · 1 line
1.5.6
Applied
#5 lore raw

Re: [PATCH 3/7] pci: using %pF in quirks.c

Quoted 13 lines · Yinghai Lu
---
 drivers/pci/quirks.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
drivers/pci/quirks.c +0 -0
index 1f26712..addf2db 100644
@@ -1689,8 +1689,7 @@ static void pci_do_fixups(struct pci_dev *dev, struct

pci_fixup *f, struct pci_f if ((f->vendor == dev->vendor || f->vendor == (u16) PCI_ANY_ID) && (f->device == dev->device || f->device == (u16) PCI_ANY_ID)) { #ifdef DEBUG

drivers/pci/quirks.c static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_f · line 1695

Quoted 6 lines
drivers/pci/quirks.c +1 -2
-			dev_dbg(&dev->dev, "calling ");
-			print_fn_descriptor_symbol("%s\n", f->hook);
+			dev_dbg(&dev->dev, "calling %pF\n", f->hook);
 #endif
 			f->hook(dev);
 		}

Applied to linux-next, thanks.

Signature · 1 line
Jesse Barnes, Intel Open Source Technology Center
#6 lore raw

Re: [PATCH 3/7] pci: using %pF in quirks.c

In reply to Yinghai Lu
Quoted 10 lines · Yinghai Lu
---
 drivers/pci/quirks.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
drivers/pci/quirks.c +0 -0
index 1f26712..addf2db 100644

drivers/pci/quirks.c static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_f · line 1695

Quoted 9 lines
drivers/pci/quirks.c +1 -2
@@ -1689,8 +1689,7 @@ static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_f
 		if ((f->vendor == dev->vendor || f->vendor == (u16) PCI_ANY_ID) &&
  		    (f->device == dev->device || f->device == (u16) PCI_ANY_ID)) {
 #ifdef DEBUG
-			dev_dbg(&dev->dev, "calling ");
-			print_fn_descriptor_symbol("%s\n", f->hook);
+			dev_dbg(&dev->dev, "calling %pF\n", f->hook);
 #endif
 			f->hook(dev);
 		}

I posted a similar patch already:
http://lkml.org/lkml/2008/8/22/178

Maybe mine was too complicated because it touched more files at once. Regardless, we need to remove the #ifdef DEBUG because it's no longer necessary.

#7 lore raw

Re: [PATCH 3/7] pci: using %pF in quirks.c

Quoted 24 lines · Bjorn Helgaas
Quoted 13 lines · Yinghai Lu
---
 drivers/pci/quirks.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
drivers/pci/quirks.c +0 -0
index 1f26712..addf2db 100644
@@ -1689,8 +1689,7 @@ static void pci_do_fixups(struct pci_dev *dev,

struct pci_fixup *f, struct pci_f if ((f->vendor == dev->vendor || f->vendor == (u16) PCI_ANY_ID) && (f->device == dev->device || f->device == (u16) PCI_ANY_ID)) { #ifdef DEBUG

drivers/pci/quirks.c static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, struct pci_f · line 1695

Quoted 6 lines
drivers/pci/quirks.c +1 -2
-			dev_dbg(&dev->dev, "calling ");
-			print_fn_descriptor_symbol("%s\n", f->hook);
+			dev_dbg(&dev->dev, "calling %pF\n", f->hook);
 #endif
 			f->hook(dev);
 		}

I posted a similar patch already:
http://lkml.org/lkml/2008/8/22/178

Quoted 3 lines

Maybe mine was too complicated because it touched more files at once. Regardless, we need to remove the #ifdef DEBUG because it's no longer necessary.

Yeah you sent it to Andrew and it touched several files; maybe I shouldn't have ignored it. :)

Anyway I'll fix up the #ifdefs in my linux-next branch.

Thanks,
Jesse

author
#8 lore raw

PATCH 4/7 mm: print out meminit for memmap

In reply to Yinghai Lu
---
 mm/page_alloc.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
mm/page_alloc.c +3 -4
index e293c58..db30af6 100644
@@ -3425,8 +3425,8 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
 			PAGE_ALIGN(size * sizeof(struct page)) >> PAGE_SHIFT;
 		if (realsize >= memmap_pages) {
 			realsize -= memmap_pages;
-			mminit_dprintk(MMINIT_TRACE, "memmap_init",
-				"%s zone: %lu pages used for memmap\n",
+			printk(KERN_DEBUG
+				"  %s zone: %lu pages used for memmap\n",
 				zone_names[j], memmap_pages);
 		} else
 			printk(KERN_WARNING
@@ -3436,8 +3436,7 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
 		/* Account for reserved pages */
 		if (j == 0 && realsize > dma_reserve) {
 			realsize -= dma_reserve;
-			mminit_dprintk(MMINIT_TRACE, "memmap_init",
-					"%s zone: %lu pages reserved\n",
+			printk(KERN_DEBUG "  %s zone: %lu pages reserved\n",
 					zone_names[0], dma_reserve);
 		}
 
Signature · 1 line
1.5.6
#9 lore raw

Re: [PATCH 4/7] mm: print out meminit for memmap

Quoted 4 lines · Yinghai Lu
---
 mm/page_alloc.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

rationale: improve debuggability of memory setup problems.

Ingo

author
#10 lore raw

PATCH 5/7 x86: fix typo in irq_desc array

In reply to Yinghai Lu

when SPARSE_IRQ is not used, should still use irq_desc->lock

---
 kernel/irq/handle.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
kernel/irq/handle.c +1 -1
index 7f625fb..fb6bdb6 100644
@@ -253,7 +253,7 @@ struct irq_desc irq_desc[NR_IRQS] __cacheline_aligned_in_smp = {
 		.chip = &no_irq_chip,
 		.handle_irq = handle_bad_irq,
 		.depth = 1,
-		.lock = __SPIN_LOCK_UNLOCKED(sparse_irqs->lock),
+		.lock = __SPIN_LOCK_UNLOCKED(irq_desc->lock),
 #ifdef CONFIG_SMP
 		.affinity = CPU_MASK_ALL
 #endif
Signature · 1 line
1.5.6
Applied
#11 lore raw

Re: [PATCH 5/7] x86: fix typo in irq_desc array

Quoted 6 lines · Yinghai Lu

when SPARSE_IRQ is not used, should still use irq_desc->lock

---
 kernel/irq/handle.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

applied to tip/irq/sparseirq, thanks Yinghai!

Ingo

author
#12 lore raw

PATCH 6/7 x86: irq no should not use hex in /proc/interrupts

In reply to Yinghai Lu
---
 arch/x86/kernel/irq_32.c |    2 +-
 arch/x86/kernel/irq_64.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
arch/x86/kernel/irq_32.c +1 -1
index b2e1082..001772f 100644
@@ -307,7 +307,7 @@ int show_interrupts(struct seq_file *p, void *v)
 		action = desc->action;
 		if (!action && !any_count)
 			goto skip;
-		seq_printf(p, "%#x: ",i);
+		seq_printf(p, "%3d: ", i);
 #ifndef CONFIG_SMP
 		seq_printf(p, "%10u ", kstat_irqs(i));
 #else
arch/x86/kernel/irq_64.c +1 -1
index c2fca89..ec26610 100644
@@ -112,7 +112,7 @@ int show_interrupts(struct seq_file *p, void *v)
 		action = desc->action;
 		if (!action && !any_count)
 			goto skip;
-		seq_printf(p, "%#x: ",i);
+		seq_printf(p, "%3d: ", i);
 #ifndef CONFIG_SMP
 		seq_printf(p, "%10u ", kstat_irqs(i));
 #else
Signature · 1 line
1.5.6
Applied
#13 lore raw

Re: [PATCH 6/7] x86: irq no should not use hex in /proc/interrupts

Quoted 5 lines · Yinghai Lu
---
 arch/x86/kernel/irq_32.c |    2 +-
 arch/x86/kernel/irq_64.c |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

applied to tip/irq/sparseirq, thanks Yinghai!

Ingo

author
#14 lore raw

PATCH 7/7 x86: print out irq nr for msi/ht

In reply to Yinghai Lu
---
 arch/x86/kernel/hpet.c    |    3 +++
 arch/x86/kernel/io_apic.c |    7 +++++++
 2 files changed, 10 insertions(+), 0 deletions(-)
arch/x86/kernel/hpet.c +3 -0
index 422c577..686505a 100644
@@ -467,6 +467,9 @@ static int hpet_setup_irq(struct hpet_dev *dev)
 	irq_set_affinity(dev->irq, cpumask_of_cpu(dev->cpu));
 	enable_irq(dev->irq);
 
+	printk(KERN_DEBUG "hpet: %s is using irq %#x aka %d for MSI\n",
+			 dev->name, irq, irq);
+
 	return 0;
 }
 
arch/x86/kernel/io_apic.c +7 -0
index 4cc9cb6..dc82397 100644
@@ -3355,6 +3355,9 @@ static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc, int irq)
 #endif
 		set_irq_chip_and_handler_name(irq, &msi_chip, handle_edge_irq, "edge");
 
+	printk(KERN_DEBUG "PCI: %s is using irq %#x aka %d for MSI/MSI-X\n",
+			 pci_name(dev), irq, irq);
+
 	return 0;
 }
 
@@ -3587,6 +3590,7 @@ int arch_setup_hpet_msi(unsigned int irq)
 	hpet_msi_write(irq, &msg);
 	set_irq_chip_and_handler_name(irq, &hpet_msi_type, handle_edge_irq,
 		"edge");
+
 	return 0;
 }
 #endif
@@ -3683,6 +3687,9 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev)
 
 		set_irq_chip_and_handler_name(irq, &ht_irq_chip,
 					      handle_edge_irq, "edge");
+
+		printk(KERN_DEBUG "PCI: %s is using irq %#x aka %d for HT\n",
+				 pci_name(dev), irq, irq);
 	}
 	return err;
 }
Signature · 1 line
1.5.6