summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorRik van Riel <riel@redhat.com>2013-07-31 22:14:21 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-09-26 17:18:14 -0700
commitc18c0f9da9d97ea6710804971b981456a40cd01a (patch)
treed51074be11b816a5cb20e821474160fb43ed9928 /sound
parent8ceb02f11454cf5102bfede5a6e112abe3990bb2 (diff)
downloadlinux-3.10-c18c0f9da9d97ea6710804971b981456a40cd01a.tar.gz
linux-3.10-c18c0f9da9d97ea6710804971b981456a40cd01a.tar.bz2
linux-3.10-c18c0f9da9d97ea6710804971b981456a40cd01a.zip
sched/x86: Optimize switch_mm() for multi-threaded workloads
commit 8f898fbbe5ee5e20a77c4074472a1fd088dc47d1 upstream. Dick Fowles, Don Zickus and Joe Mario have been working on improvements to perf, and noticed heavy cache line contention on the mm_cpumask, running linpack on a 60 core / 120 thread system. The cause turned out to be unnecessary atomic accesses to the mm_cpumask. When in lazy TLB mode, the CPU is only removed from the mm_cpumask if there is a TLB flush event. Most of the time, no such TLB flush happens, and the kernel skips the TLB reload. It can also skip the atomic memory set & test. Here is a summary of Joe's test results: * The __schedule function dropped from 24% of all program cycles down to 5.5%. * The cacheline contention/hotness for accesses to that bitmask went from being the 1st/2nd hottest - down to the 84th hottest (0.3% of all shared misses which is now quite cold) * The average load latency for the bit-test-n-set instruction in __schedule dropped from 10k-15k cycles down to an average of 600 cycles. * The linpack program results improved from 133 GFlops to 144 GFlops. Peak GFlops rose from 133 to 153. Reported-by: Don Zickus <dzickus@redhat.com> Reported-by: Joe Mario <jmario@redhat.com> Tested-by: Joe Mario <jmario@redhat.com> Signed-off-by: Rik van Riel <riel@redhat.com> Reviewed-by: Paul Turner <pjt@google.com> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Link: http://lkml.kernel.org/r/20130731221421.616d3d20@annuminas.surriel.com [ Made the comments consistent around the modified code. ] Signed-off-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'sound')
0 files changed, 0 insertions, 0 deletions