linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/16] Misc page alloc, shmem and mark_page_accessed optimisations
@ 2014-04-18 14:50 Mel Gorman
  2014-04-18 14:50 ` [PATCH 01/16] mm: Disable zone_reclaim_mode by default Mel Gorman
                   ` (15 more replies)
  0 siblings, 16 replies; 31+ messages in thread
From: Mel Gorman @ 2014-04-18 14:50 UTC (permalink / raw)
  To: Linux-MM; +Cc: Linux-FSDevel

I was investigating a performance bug that looked like dd to tmpfs
had regressed.  The bulk of the problem turned out to be a difference
in Kconfig but it got me looking at the unnecessary overhead in tmpfs,
mark_page_accessed and parts of the allocator. This series is the result.

The primary test workload was dd to a tmpfs file that was 1/10th the size
of memory so that dirty balancing and reclaim should not be factors.

loopdd Throughput
                     3.15.0-rc1            3.15.0-rc1
                        vanilla        microopt-v1r11
Min      3993.6000 (  0.00%)      4096.0000 (  2.56%)
Mean     4766.7200 (  0.00%)      4896.4267 (  2.72%)
Stddev    164.5053 (  0.00%)       167.7316 (  1.96%)
Max      4812.8000 (  0.00%)      5120.0000 (  6.38%)

Respectable increase in throughput. The figures are misleading though because
dd reports in GB/sec so there is a lot of noise. The actual time to completiono
is easier to see

loopdd Time
                         3.15.0-rc1            3.15.0-rc1
                            vanilla        microopt-v1r11
Min      time0.3521 (  0.00%)0.3317 (  5.80%)
Mean     time0.3570 (  0.00%)0.3458 (  3.14%)
Stddev   time0.0140 (  0.00%)0.0112 ( 20.59%)
Max      time0.4230 (  0.00%)0.4083 (  3.49%)

The time to dd the data is noticably reduced

          3.15.0-rc1  3.15.0-rc1
             vanillamicroopt-v1r11
User           10.86       10.78
System         70.21       67.12
Elapsed        92.43       89.42

And the system CPU overhead is lower.

A series of tests against various filesystems as well as a general
benchmark are still running but I thought I would send the series out
as-is for comment.

 Documentation/sysctl/vm.txt         |  17 ++--
 arch/ia64/include/asm/topology.h    |   3 +-
 arch/powerpc/include/asm/topology.h |   8 +-
 include/linux/cpuset.h              |  29 +++++++
 include/linux/mmzone.h              |  14 ++-
 include/linux/page-flags.h          |   2 +
 include/linux/pageblock-flags.h     |  18 +++-
 include/linux/swap.h                |   7 +-
 include/linux/topology.h            |   3 +-
 kernel/cpuset.c                     |   8 +-
 mm/filemap.c                        |  58 ++++++++-----
 mm/page_alloc.c                     | 164 ++++++++++++++++++++----------------
 mm/shmem.c                          |   8 +-
 mm/swap.c                           |  13 ++-
 14 files changed, 226 insertions(+), 126 deletions(-)

-- 
1.8.4.5

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2014-04-19 11:24 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-18 14:50 [PATCH 00/16] Misc page alloc, shmem and mark_page_accessed optimisations Mel Gorman
2014-04-18 14:50 ` [PATCH 01/16] mm: Disable zone_reclaim_mode by default Mel Gorman
2014-04-18 17:26   ` Andi Kleen
2014-04-18 21:15     ` Dave Hansen
2014-04-18 14:50 ` [PATCH 02/16] mm: page_alloc: Do not cache reclaim distances Mel Gorman
2014-04-18 14:50 ` [PATCH 03/16] mm: page_alloc: Do not update zlc unless the zlc is active Mel Gorman
2014-04-18 17:52   ` Johannes Weiner
2014-04-18 14:50 ` [PATCH 04/16] mm: page_alloc: Do not treat a zone that cannot be used for dirty pages as "full" Mel Gorman
2014-04-18 17:52   ` Johannes Weiner
2014-04-18 14:50 ` [PATCH 05/16] mm: page_alloc: Use jump labels to avoid checking number_of_cpusets Mel Gorman
2014-04-18 14:50 ` [PATCH 06/16] mm: page_alloc: Calculate classzone_idx once from the zonelist ref Mel Gorman
2014-04-18 18:03   ` Johannes Weiner
2014-04-19 11:18     ` Mel Gorman
2014-04-18 14:50 ` [PATCH 07/16] mm: page_alloc: Only check the zone id check if pages are buddies Mel Gorman
2014-04-18 18:05   ` Johannes Weiner
2014-04-18 14:50 ` [PATCH 08/16] mm: page_alloc: Only check the alloc flags and gfp_mask for dirty once Mel Gorman
2014-04-18 18:08   ` Johannes Weiner
2014-04-19 11:19     ` Mel Gorman
2014-04-18 14:50 ` [PATCH 09/16] mm: page_alloc: Take the ALLOC_NO_WATERMARK check out of the fast path Mel Gorman
2014-04-18 18:10   ` Johannes Weiner
2014-04-18 14:50 ` [PATCH 10/16] mm: page_alloc: Use word-based accesses for get/set pageblock bitmaps Mel Gorman
2014-04-18 17:16   ` Vlastimil Babka
2014-04-18 14:50 ` [PATCH 11/16] mm: page_alloc: Reduce number of times page_to_pfn is called Mel Gorman
2014-04-18 14:50 ` [PATCH 12/16] mm: shmem: Avoid atomic operation during shmem_getpage_gfp Mel Gorman
2014-04-18 18:13   ` Johannes Weiner
2014-04-18 14:50 ` [PATCH 13/16] mm: Do not use atomic operations when releasing pages Mel Gorman
2014-04-18 14:50 ` [PATCH 14/16] mm: Do not use unnecessary atomic operations when adding pages to the LRU Mel Gorman
2014-04-18 14:50 ` [PATCH 15/16] mm: Non-atomically mark page accessed in write_begin where possible Mel Gorman
2014-04-18 14:50 ` [PATCH 16/16] mm: filemap: Prefetch page->flags if !PageUptodate Mel Gorman
2014-04-18 19:16   ` Hugh Dickins
2014-04-19 11:23     ` Mel Gorman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).