linux/arch
John Dykstra fa83523f45 x86/mm/pat: Improve scaling of pat_pagerange_is_ram()
Function pat_pagerange_is_ram() scales poorly to large address
ranges, because it probes the resource tree for each page.

On a 2.6 GHz Opteron, this function consumes 34 ms for a 1 GB range.

It is called twice during untrack_pfn_vma(), slowing process
cleanup and handicapping the OOM killer.

This replacement consumes less than 1ms, under the same conditions.

Signed-off-by: John Dykstra <jdykstra@cray.com> on behalf of Cray Inc.
Acked-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1337980366.1979.6.camel@redwood
[ Small stylistic cleanups and renames ]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2012-05-30 10:57:11 +02:00
..
alpha GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
arm GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
avr32 GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
blackfin GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
c6x Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-24 13:29:46 -07:00
cris Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-24 13:29:46 -07:00
frv Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-05-23 18:11:45 -07:00
h8300 Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-24 13:29:46 -07:00
hexagon Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-24 13:29:46 -07:00
ia64 GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
m32r Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-24 13:29:46 -07:00
m68k GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
microblaze GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
mips GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
mn10300 Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-24 13:29:46 -07:00
openrisc GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
parisc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-05-23 18:11:45 -07:00
powerpc GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
s390 Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-24 13:29:46 -07:00
score Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-24 13:29:46 -07:00
sh GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
sparc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2012-05-24 15:10:28 -07:00
tile Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-24 13:29:46 -07:00
um Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-24 13:29:46 -07:00
unicore32 GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
x86 x86/mm/pat: Improve scaling of pat_pagerange_is_ram() 2012-05-30 10:57:11 +02:00
xtensa GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
.gitignore
Kconfig Merge branch 'perf-uprobes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-24 11:39:34 -07:00