History

Merge branches 'x86-fixes-for-linus', 'sched-fixes-for-linus', 'timers-fixes-for-linus', 'irq-fixes-for-linus' and 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86-32, fpu: Fix FPU exception handling on non-SSE systems x86, hibernate: Initialize mmu_cr4_features during boot x86-32, NUMA: Fix ACPI NUMA init broken by recent x86-64 change x86: visws: Fixup irq overhaul fallout * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: sched: Clean up rebalance_domains() load-balance interval calculation * 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86/mrst/vrtc: Fix boot crash in mrst_rtc_init() rtc, x86/mrst/vrtc: Fix boot crash in rtc_read_alarm() * 'irq-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: genirq: Fix cpumask leak in __setup_irq() * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: perf probe: Fix listing incorrect line number with inline function perf probe: Fix to find recursively inlined function perf probe: Fix multiple --vars options behavior perf probe: Fix to remove redundant close perf probe: Fix to ensure function declared file

Linus Torvalds committed 15 years ago

Commit 8b9686f6 parents df9b29d f994d99 49c022e 09552b2 4f5058c f64fac811 files · +151 −89Browse files

Showing the changes to kernel (3 of 11 files). Show all

Unified · Split

3 files
  1. kernel/irq/manage.c +1 −0
  2. kernel/sched.c +3 −0
  3. kernel/sched_fair.c +12 −4
kernel/irq/manage.c+1−0
@@ -1051,6 +1051,7 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) · 1050 unmodified lines
10511051 register_irq_proc(irq, desc);
10521052 new->dir = NULL;
10531053 register_handler_proc(irq, new);
1054+ free_cpumask_var(mask);
10541055
10551056 return 0;
10561057
kernel/sched.c+3−0
@@ -6331,6 +6331,9 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu) · 6330 unmodified lines
63316331 break;
63326332 #endif
63336333 }
6334+
6335+ update_max_interval();
6336+
63346337 return NOTIFY_OK;
63356338 }
63366339
kernel/sched_fair.c+12−4
@@ -3820,6 +3820,17 @@ void select_nohz_load_balancer(int stop_tick) · 3819 unmodified lines
38203820
38213821 static DEFINE_SPINLOCK(balancing);
38223822
3823+static unsigned long __read_mostly max_load_balance_interval = HZ/10;
3824+
3825+/*
3826+ * Scale the max load_balance interval with the number of CPUs in the system.
3827+ * This trades load-balance latency on larger machines for less cross talk.
3828+ */
3829+static void update_max_interval(void)
3830+{
3831+ max_load_balance_interval = HZ*num_online_cpus()/10;
3832+}
3833+
38233834 /*
38243835 * It checks each scheduling domain to see if it is due to be balanced,
38253836 * and initiates a balancing operation if so.
@@ -3849,10 +3860,7 @@ static void rebalance_domains(int cpu, enum cpu_idle_type idle) · 23 unmodified lines
38493860
38503861 /* scale ms to jiffies */
38513862 interval = msecs_to_jiffies(interval);
3852− if (unlikely(!interval))
3853− interval = 1;
3854− if (interval > HZ*num_online_cpus()/10)
3855− interval = HZ*num_online_cpus()/10;
3863+ interval = clamp(interval, 1UL, max_load_balance_interval);
38563864
38573865 need_serialize = sd->flags & SD_SERIALIZE;
38583866

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t