Patches contributed by Eötvös Lorand University
commit 0c4b83da58ec2e96ce9c44c211d6eac5f9dae478
Author: Ingo Molnar <mingo@elte.hu>
Date: Mon Oct 20 14:27:43 2008 +0200
sched: disable the hrtick for now
David Miller reported that hrtick update overhead has tripled the
wakeup overhead on Sparc64.
That is too much - disable the HRTICK feature for now by default,
until a faster implementation is found.
Reported-by: David Miller <davem@davemloft.net>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/kernel/sched_features.h b/kernel/sched_features.h
index 7c9e8f4a049f..fda016218296 100644
--- a/kernel/sched_features.h
+++ b/kernel/sched_features.h
@@ -5,7 +5,7 @@ SCHED_FEAT(START_DEBIT, 1)
SCHED_FEAT(AFFINE_WAKEUPS, 1)
SCHED_FEAT(CACHE_HOT_BUDDY, 1)
SCHED_FEAT(SYNC_WAKEUPS, 1)
-SCHED_FEAT(HRTICK, 1)
+SCHED_FEAT(HRTICK, 0)
SCHED_FEAT(DOUBLE_TICK, 0)
SCHED_FEAT(ASYM_GRAN, 1)
SCHED_FEAT(LB_BIAS, 1)
commit 3e10e879a8c334a5927d800a3663a24d562cfa31
Merge: 98d9c66ab074 0cfd81031a26
Author: Ingo Molnar <mingo@elte.hu>
Date: Sun Oct 19 19:04:47 2008 +0200
Merge branch 'linus' into tracing-v28-for-linus-v3
Conflicts:
init/main.c
kernel/module.c
scripts/bootgraph.pl
diff --cc kernel/module.c
index 7576c2d9462f,25bc9ac9e226..0d8d21ee792c
--- a/kernel/module.c
+++ b/kernel/module.c
@@@ -1836,9 -1860,7 +1865,10 @@@ static noinline struct module *load_mod
#endif
unsigned int markersindex;
unsigned int markersstringsindex;
+ unsigned int verboseindex;
+ unsigned int tracepointsindex;
+ unsigned int tracepointsstringsindex;
+ unsigned int mcountindex;
struct module *mod;
long err = 0;
void *percpu = NULL, *ptr = NULL; /* Stops spurious gcc warning */
@@@ -2126,12 -2155,7 +2164,13 @@@
markersindex = find_sec(hdr, sechdrs, secstrings, "__markers");
markersstringsindex = find_sec(hdr, sechdrs, secstrings,
"__markers_strings");
+ verboseindex = find_sec(hdr, sechdrs, secstrings, "__verbose");
+ tracepointsindex = find_sec(hdr, sechdrs, secstrings, "__tracepoints");
+ tracepointsstringsindex = find_sec(hdr, sechdrs, secstrings,
+ "__tracepoints_strings");
+
+ mcountindex = find_sec(hdr, sechdrs, secstrings,
+ "__mcount_loc");
/* Now do relocations. */
for (i = 1; i < hdr->e_shnum; i++) {
@@@ -2188,16 -2205,8 +2227,17 @@@
marker_update_probe_range(mod->markers,
mod->markers + mod->num_markers);
#endif
+ dynamic_printk_setup(sechdrs, verboseindex);
+#ifdef CONFIG_TRACEPOINTS
+ tracepoint_update_probe_range(mod->tracepoints,
+ mod->tracepoints + mod->num_tracepoints);
+#endif
+ }
+
+ /* sechdrs[0].sh_size is always zero */
+ mseg = (void *)sechdrs[mcountindex].sh_addr;
+ ftrace_init_module(mseg, mseg + sechdrs[mcountindex].sh_size);
+
err = module_finalize(hdr, sechdrs, mod);
if (err < 0)
goto cleanup;
commit 0f1f6dec9593c8319714c927dafb443548a1452a
Merge: 8cd162ce230b 2e532d68a2b3
Author: Ingo Molnar <mingo@elte.hu>
Date: Fri Oct 17 12:25:43 2008 +0200
Merge branch 'linus' into sched/urgent
commit 8cf7d362c0dc2cfda2146d184eedc32a530c8020
Author: Ingo Molnar <mingo@elte.hu>
Date: Fri Oct 17 11:25:23 2008 +0200
profiling: fix !procfs build
fix:
kernel/built-in.o: In function `profiling_store':
ksysfs.c:(.text+0x1f90c): undefined reference to `create_proc_profile'
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/include/linux/profile.h b/include/linux/profile.h
index 570045053ce9..e3eca8577a38 100644
--- a/include/linux/profile.h
+++ b/include/linux/profile.h
@@ -37,7 +37,14 @@ extern int prof_on __read_mostly;
/* init basic kernel profiler */
int profile_init(void);
int profile_setup(char *str);
+#ifdef CONFIG_PROC_FS
int create_proc_profile(void);
+#else
+static inline int create_proc_profile(void)
+{
+ return 0;
+}
+#endif
void profile_tick(int type);
/*
commit 52f4f324c727e77507ae0490b08fc92e140ba57d
Merge: 3baf63a50709 2e532d68a2b3
Author: Ingo Molnar <mingo@elte.hu>
Date: Fri Oct 17 11:20:52 2008 +0200
Merge branch 'linus' into core/urgent
commit 3baf63a507094992a5bf238ba3bcea71f458b1e8
Author: Ingo Molnar <mingo@elte.hu>
Date: Thu Oct 16 19:00:57 2008 +0200
m32r: fix build due to notify_cpu_starting() change
fix:
arch/m32r/kernel/smpboot.c:501: err
or: implicit declaration of function 'notify_cpu_starting'
make[2]: *** [arch/m32r/kernel/smpboot.o] Error 1
make[2]: *** Waiting for unfinished jobs....
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/arch/m32r/kernel/smpboot.c b/arch/m32r/kernel/smpboot.c
index fc2994811f15..39cb6da72dcb 100644
--- a/arch/m32r/kernel/smpboot.c
+++ b/arch/m32r/kernel/smpboot.c
@@ -40,6 +40,7 @@
*/
#include <linux/module.h>
+#include <linux/cpu.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/mm.h>
commit cc8e920aaf5558f87851169b33c420cc4516c253
Author: Ingo Molnar <mingo@elte.hu>
Date: Thu Oct 16 17:05:27 2008 +0200
intr_remapping: fix typo
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c
index 950769e87475..d6040dd3ff5b 100644
--- a/drivers/pci/intr_remapping.c
+++ b/drivers/pci/intr_remapping.c
@@ -23,7 +23,7 @@ static struct irq_2_iommu irq_2_iommuX[NR_IRQS];
static struct irq_2_iommu *irq_2_iommu(unsigned int irq)
{
- return (irq < nr_irqs) ?: irq_2_iommuX + irq : NULL;
+ return (irq < nr_irqs) ? irq_2_iommuX + irq : NULL;
}
static struct irq_2_iommu *irq_2_iommu_alloc(unsigned int irq)
commit 10e0298686be6249b0665465737a6b83446c4d35
Author: Ingo Molnar <mingo@elte.hu>
Date: Thu Oct 16 17:04:22 2008 +0200
io_apic: make irq_mis_count available on 64-bit too
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c
index 6f80dc2f137e..b764d7429c61 100644
--- a/arch/x86/kernel/io_apic.c
+++ b/arch/x86/kernel/io_apic.c
@@ -2277,9 +2277,7 @@ static void ack_apic_edge(unsigned int irq)
ack_APIC_irq();
}
-#ifdef CONFIG_X86_32
atomic_t irq_mis_count;
-#endif
static void ack_apic_level(unsigned int irq)
{
commit a1aca5de08a0cb840a90fb3f729a5940f8d21185
Author: Ingo Molnar <mingo@elte.hu>
Date: Wed Oct 15 19:29:15 2008 +0200
genirq: remove artifacts from sparseirq removal
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/arch/Kconfig b/arch/Kconfig
index 071004d3a1b1..0267babe5eb9 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -102,3 +102,4 @@ config HAVE_CLK
help
The <linux/clk.h> calls support software clock gating and
thus are a key power management tool on many systems.
+
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 5fef4fece4a5..0d1c26a583c5 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1254,7 +1254,6 @@ static int __init acpi_parse_madt_ioapic_entries(void)
return count;
}
-
count =
acpi_table_parse_madt(ACPI_MADT_TYPE_INTERRUPT_OVERRIDE, acpi_parse_int_src_ovr,
nr_irqs);
diff --git a/arch/x86/kernel/irqinit_32.c b/arch/x86/kernel/irqinit_32.c
index a8d35998d308..845aa9803e80 100644
--- a/arch/x86/kernel/irqinit_32.c
+++ b/arch/x86/kernel/irqinit_32.c
@@ -184,4 +184,3 @@ void __init native_init_IRQ(void)
irq_ctx_init(smp_processor_id());
}
-
diff --git a/arch/x86/kernel/vmlinux_64.lds.S b/arch/x86/kernel/vmlinux_64.lds.S
index 3245ad72594a..46e05447405b 100644
--- a/arch/x86/kernel/vmlinux_64.lds.S
+++ b/arch/x86/kernel/vmlinux_64.lds.S
@@ -173,7 +173,6 @@ SECTIONS
*(.x86_cpu_dev.init)
}
__x86_cpu_dev_end = .;
-
SECURITY_INIT
. = ALIGN(8);
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 91343c2694b4..8396868e82c5 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -66,7 +66,6 @@ static unsigned long __meminitdata table_end;
static unsigned long __meminitdata table_top;
static int __initdata after_init_bootmem;
-int after_bootmem;
static __init void *alloc_low_page(unsigned long *phys)
{
@@ -989,8 +988,6 @@ void __init mem_init(void)
set_highmem_pages_init();
- after_bootmem = 1;
-
codesize = (unsigned long) &_etext - (unsigned long) &_text;
datasize = (unsigned long) &_edata - (unsigned long) &_etext;
initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin;
diff --git a/include/linux/init.h b/include/linux/init.h
index 70ad53e1eab8..93538b696e3d 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -246,7 +246,6 @@ struct obs_kernel_param {
/* Relies on boot_command_line being set */
void __init parse_early_param(void);
-
#endif /* __ASSEMBLY__ */
/**
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h
index a9d0d360b776..89b6ecd41473 100644
--- a/include/linux/kernel_stat.h
+++ b/include/linux/kernel_stat.h
@@ -28,7 +28,7 @@ struct cpu_usage_stat {
struct kernel_stat {
struct cpu_usage_stat cpustat;
- unsigned int irqs[NR_IRQS];
+ unsigned int irqs[NR_IRQS];
};
DECLARE_PER_CPU(struct kernel_stat, kstat);
commit 37762b6ffb37f9e21cbc6f80902aa06b7a053fd7
Author: Ingo Molnar <mingo@elte.hu>
Date: Fri Oct 3 11:38:37 2008 +0200
x86, UV: add uv_setup_irq() and uv_teardown_irq() functions, v3, fix
fix:
arch/x86/kernel/uv_irq.c: In function 'uv_ack_apic':
arch/x86/kernel/uv_irq.c:26: error: implicit declaration of function 'ack_APIC_irq'
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/arch/x86/kernel/uv_irq.c b/arch/x86/kernel/uv_irq.c
index 6bd26c91c30b..aeef529917e4 100644
--- a/arch/x86/kernel/uv_irq.c
+++ b/arch/x86/kernel/uv_irq.c
@@ -10,6 +10,8 @@
#include <linux/module.h>
#include <linux/irq.h>
+
+#include <asm/apic.h>
#include <asm/uv/uv_irq.h>
static void uv_noop(unsigned int irq)