The patch titled sched: fix migration cost estimator has been added to the -mm tree. Its filename is sched-fix-migration-cost-estimator.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: sched: fix migration cost estimator From: Ingo Molnar <mingo@xxxxxxx> Bela found the following bug: touch_cache() only touched 2 thirds of the cache buffer (hence wasting memory and possibly making calibration less accurate). Fixes http://bugzilla.kernel.org/show_bug.cgi?id=7476 Signed-off-by: Ingo Molnar <mingo@xxxxxxx> Cc: Bela Lubkin <blubkin@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- kernel/sched.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff -puN kernel/sched.c~sched-fix-migration-cost-estimator kernel/sched.c --- a/kernel/sched.c~sched-fix-migration-cost-estimator +++ a/kernel/sched.c @@ -5721,14 +5721,24 @@ static void touch_cache(void *__cache, u unsigned long *cache = __cache; int i; + /* + * We access the buffer via 6 independent 'streams' of + * read/write access which are interleaved: + * + * [---> <---|---> <---|---> <---] + * + * We touch every cacheline in the buffer. (iteration + * step is 32 bytes on 32-bit systems, 64 bytes on + * 64-bit systems) + */ for (i = 0; i < size/6; i += 8) { - switch (i % 6) { - case 0: cache[i]++; - case 1: cache[size-1-i]++; - case 2: cache[chunk1-i]++; - case 3: cache[chunk1+i]++; - case 4: cache[chunk2-i]++; - case 5: cache[chunk2+i]++; + switch (i % 6*8) { + case 0*8: cache[i]++; + case 1*8: cache[size-1-i]++; + case 2*8: cache[chunk1-i]++; + case 3*8: cache[chunk1+i]++; + case 4*8: cache[chunk2-i]++; + case 5*8: cache[chunk2+i]++; } } } _ Patches currently in -mm which might be from mingo@xxxxxxx are bonding-lockdep-annotation.patch lockdep-annotate-nfs-nfsd-in-kernel-sockets.patch lockdep-annotate-nfs-nfsd-in-kernel-sockets-tidy.patch sysrq-x-show-blocked-tasks.patch setup_irq-better-mismatch-debugging.patch lockdep-internal-locking-fixes.patch lockdep-misc-fixes-in-lockdepc.patch cpuset-remove-sched-domain-hooks-from-cpusets.patch binfmt_elf-randomize-pie-binaries.patch enforce-unsigned-long-flags-when-spinlocking.patch disable-clone_child_cleartid-for-abnormal-exit.patch lockdep-spin_lock_irqsave_nested.patch lockdep-spin_lock_irqsave_nested-fix.patch lockdep-spin_lock_irqsave_nested-fix-2.patch lockdep-annotate-bcsp-driver.patch lockdep-print-current-locks-on-in_atomic-warnings.patch lockdep-name-some-old-style-locks.patch sleep-profiling.patch sleep-profiling-fixes.patch sleep-profiling-fix.patch debug-workqueue-locking-sanity.patch debug-workqueue-locking-sanity-fix.patch remove-the-old-bd_mutex-lockdep-annotation.patch new-bd_mutex-lockdep-annotation.patch remove-lock_key-approach-to-managing-nested-bd_mutex-locks.patch simplify-some-aspects-of-bd_mutex-nesting.patch use-mutex_lock_nested-for-bd_mutex-to-avoid-lockdep-warning.patch avoid-lockdep-warning-in-md.patch fix-generic-warn_on-message.patch schedc-correct-comment-for-this_rq_lock-routine.patch sched-fix-migration-cost-estimator.patch kernel-schedc-whitespace-cleanups.patch kernel-schedc-whitespace-cleanups-more.patch sched-add-above-background-load-function.patch mm-implement-swap-prefetching.patch sched-cleanup-remove-task_t-convert-to-struct-task_struct-prefetch.patch gtod-exponential-update_wall_time.patch gtod-persistent-clock-support-core.patch gtod-persistent-clock-support-i386.patch time-uninline-jiffiesh.patch time-uninline-jiffiesh-fix.patch time-fix-msecs_to_jiffies-bug.patch time-fix-timeout-overflow.patch cleanup-uninline-irq_enter-and-move-it-into-a-function.patch dynticks-extend-next_timer_interrupt-to-use-a-reference-jiffie.patch dynticks-extend-next_timer_interrupt-to-use-a-reference-jiffie-remove-incorrect-warning-in-kernel-timerc.patch hrtimers-namespace-and-enum-cleanup.patch hrtimers-clean-up-locking.patch updated-hrtimers-state-tracking.patch updated-hrtimers-clean-up-callback-tracking.patch updated-hrtimers-move-and-add-documentation.patch updated-add-a-framework-to-manage-clock-event-devices.patch updated-acpi-include-apich.patch updated-acpi-keep-track-of-timer-broadcast.patch updated-acpi-add-state-propagation-for-dynamic-broadcasting.patch updated-i386-cleanup-apic-code.patch updated-i386-convert-to-clock-event-devices.patch updated-pm_timer-allow-early-access-and-move-externs-to-a-header-file.patch updated-i386-rework-local-apic-calibration.patch updated-high-res-timers-core.patch updated-gtod-mark-tsc-unusable-for-highres-timers.patch updated-dynticks-core-code.patch updated-dyntick-add-nohz-stats-to-proc-stat.patch updated-dynticks-i386-arch-code.patch updated-dynticks-fix-nmi-watchdog.patch updated-high-res-timers-dynticks-enable-i386-support.patch updated-debugging-feature-timer-stats.patch clockevents-core-check-for-clock-event-device-handler-being-non-null-before-calling-it.patch round_jiffies-infrastructure.patch round_jiffies-infrastructure-fix.patch clocksource-add-usage-of-config_sysfs.patch clocksource-small-cleanup-2.patch clocksource-small-cleanup-2-fix.patch clocksource-small-acpi_pm-cleanup.patch detect-atomic-counter-underflows.patch debug-shared-irqs.patch make-frame_pointer-default=y.patch mutex-subsystem-synchro-test-module.patch vdso-print-fatal-signals.patch vdso-improve-print_fatal_signals-support-by-adding-memory-maps.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html