Mel Gorman
453f85d43f
mm: remove __GFP_COLD
...
As the page free path makes no distinction between cache hot and cold
pages, there is no real useful ordering of pages in the free list that
allocation requests can take advantage of. Juding from the users of
__GFP_COLD, it is likely that a number of them are the result of copying
other sites instead of actually measuring the impact. Remove the
__GFP_COLD parameter which simplifies a number of paths in the page
allocator.
This is potentially controversial but bear in mind that the size of the
per-cpu pagelists versus modern cache sizes means that the whole per-cpu
list can often fit in the L3 cache. Hence, there is only a potential
benefit for microbenchmarks that alloc/free pages in a tight loop. It's
even worse when THP is taken into account which has little or no chance
of getting a cache-hot page as the per-cpu list is bypassed and the
zeroing of multiple pages will thrash the cache anyway.
The truncate microbenchmarks are not shown as this patch affects the
allocation path and not the free path. A page fault microbenchmark was
tested but it showed no sigificant difference which is not surprising
given that the __GFP_COLD branches are a miniscule percentage of the
fault path.
Link: http://lkml.kernel.org/r/20171018075952.10627-9-mgorman@techsingularity.net
Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-11-15 18:21:06 -08:00
..
arch
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
bench
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Documentation
perf script: Allow creating per-event dump files
2017-10-27 09:10:10 -03:00
jvmti
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
pmu-events
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
python
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scripts
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
tests
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
trace
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
ui
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
util
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-11-13 13:05:08 -08:00
.gitignore
Build
perf trace: Only build tools/perf/trace/beauty/ when building 'perf trace'
2017-07-18 23:13:52 -03:00
builtin-annotate.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-bench.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
builtin-buildid-cache.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-buildid-list.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-c2c.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-config.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-data.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
builtin-diff.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-evlist.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-ftrace.c
tools include: Adopt strstarts() from the kernel
2017-07-20 15:46:10 -03:00
builtin-help.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
builtin-inject.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-kallsyms.c
builtin-kmem.c
mm: remove __GFP_COLD
2017-11-15 18:21:06 -08:00
builtin-kvm.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-list.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-lock.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-mem.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-probe.c
perf buildid-cache: Support binary objects from other namespaces
2017-07-18 23:14:11 -03:00
builtin-record.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-report.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-sched.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-script.c
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
builtin-stat.c
perf stat: Move the shadow stats scale computation in perf_stat__update_shadow_stats
2017-10-30 13:40:33 -03:00
builtin-timechart.c
perf tools: Add struct perf_data_file
2017-10-30 13:37:37 -03:00
builtin-top.c
perf top: Add option to set the number of thread for event synthesize
2017-10-03 09:27:54 -03:00
builtin-trace.c
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2017-11-13 13:05:08 -08:00
builtin-version.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
builtin.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
check-headers.sh
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00
command-list.txt
CREDITS
design.txt
Makefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.config
perf tools: Robustify detection of clang binary
2017-08-28 16:44:46 -03:00
Makefile.perf
perf trace beauty kcmp: Beautify arguments
2017-10-31 16:17:04 -03:00
MANIFEST
perf tools: Get all of tools/{arch,include}/ in the MANIFEST
2017-09-25 10:39:43 -03:00
perf-archive.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
perf-completion.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
perf-read-vdso.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
perf-sys.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
perf-with-kcore.sh
perf.c
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
perf.h
Merge branch 'linus' into perf/core, to fix conflicts
2017-11-07 10:30:18 +01:00