Hi Kirill, FYI, we see big performance changes with you commit: commit b5be3c49b81094d7aa0cefafac50c69d788be2ed Author: Kirill A. Shutemov Date: Wed Oct 9 16:45:45 2013 +0300 mm: dynamic allocate page->ptl if it cannot be embedded to struct page Signed-off-by: Kirill A. Shutemov :040000 040000 17899e0220d995b818586bf7beff7717c754148b 7161f88433ea4e4cd1913dadda4248731c1af9cd M arch :040000 040000 d957e2d0991054a1c601d088f9fddbd79a97a262 b28decbfc775fc858626c67017d32405f61694d0 M include :040000 040000 1908d09dfad8b4c0e1e088f5eecbfd47b446e144 c7799383dab307848bbb891cb1f2e1ebbebe7124 M mm bisect run success # bad: [7a6e4b26215d315c80d49ed3a14deaafaf276e48] Merge 'radeon-alex/drm-fixes-3.12' into devel-hourly-2013101006 # good: [15c03dd4859ab16f9212238f29dd315654aa94f6] Linux 3.12-rc3 git bisect start '7a6e4b26215d315c80d49ed3a14deaafaf276e48' '15c03dd4859ab16f9212238f29dd315654aa94f6' '--' # good: [2a02081f51ac5f9a3c61e7105be6d8f227d5ddc7] Merge 'regmap/topic/core' into devel-hourly-2013101006 git bisect good 2a02081f51ac5f9a3c61e7105be6d8f227d5ddc7 # good: [6e3172648c99be68179beee1e2df90486a54dd8b] Merge 'arm-soc/next/dt' into devel-hourly-2013101006 git bisect good 6e3172648c99be68179beee1e2df90486a54dd8b # bad: [b572b6ab9498e59e475743a00658a3600f2b3f1a] Merge 'ipsec-next/testing' into devel-hourly-2013101006 git bisect bad b572b6ab9498e59e475743a00658a3600f2b3f1a # bad: [2d6ed245dbe4713ca7d8a106d0153acdaaf67fdf] Merge 'rcu/dev.2013.10.09b' into devel-hourly-2013101006 git bisect bad 2d6ed245dbe4713ca7d8a106d0153acdaaf67fdf # good: [30b8b333e4a3874146a5c7d6c95573e9ff173697] Merge 'arm-soc/mvebu/drivers' into devel-hourly-2013101006 git bisect good 30b8b333e4a3874146a5c7d6c95573e9ff173697 # good: [8c8f6e64847f9407f30238dd3e7ab6c0f97429ff] sh: handle pgtable_page_ctor() fail git bisect good 8c8f6e64847f9407f30238dd3e7ab6c0f97429ff # good: [b6ef7255b339a978a559c7fd02a5e67f3099cccb] mlx4_fc: enable FC target role git bisect good b6ef7255b339a978a559c7fd02a5e67f3099cccb # bad: [28c1de28a19c6efb6ef7380c5f4701018f8c7874] Merge 'kas/dynamic_ptl/v1' into devel-hourly-2013101006 git bisect bad 28c1de28a19c6efb6ef7380c5f4701018f8c7874 # good: [ffacba0ebf499ac928254c156cc9ca80074e331e] unicore32: handle pgtable_page_ctor() fail git bisect good ffacba0ebf499ac928254c156cc9ca80074e331e # good: [9619df7b869352bfef98f0e93ac0a2ce1f9a58be] xtensa: handle pgtable_page_ctor() fail git bisect good 9619df7b869352bfef98f0e93ac0a2ce1f9a58be # bad: [b5be3c49b81094d7aa0cefafac50c69d788be2ed] mm: dynamic allocate page->ptl if it cannot be embedded to struct page git bisect bad b5be3c49b81094d7aa0cefafac50c69d788be2ed # good: [cdf8588809f4bedbf92f11d3c59f3d7a16f19d5b] iommu/arm-smmu: handle pgtable_page_ctor() fail git bisect good cdf8588809f4bedbf92f11d3c59f3d7a16f19d5b # first bad commit: [b5be3c49b81094d7aa0cefafac50c69d788be2ed] mm: dynamic allocate page->ptl if it cannot be embedded to struct page time.user_time 160 ++-------------------------------------------------------------------+ | | 140 ++ O | 120 ++ | | O O O O | 100 O+O O O O O O O | | O O O O O O | 80 ++ O O O O O O | | O O O | 60 ++ O | 40 ++ | *. .*. .* .*.*. *.*. .*. .**.| 20 ++**.*. .** * *.*.** * *.**.*.**. .*.** **.*.*.* .*.* * | * * * | 0 ++-------------------------------------------------------------------+ time.minor_page_faults 2.2e+08 ++---------------------------------------------------------------+ | | 2e+08 O+OO OO O O O OO O O O O O OO O O | 1.8e+08 ++ | | O O O | 1.6e+08 ++ O O O OO O O | 1.4e+08 ++ | | | 1.2e+08 ++ | 1e+08 ++ | | | 8e+07 ++ | 6e+07 ++ | *.**.*.**.**. .**.*.**.**.*.**.*.**.**.*.**.*.**.**.*.**.*.**.**.* 4e+07 ++-----------*---------------------------------------------------+ time.voluntary_context_switches 600000 ++-O----O---------------------------O---O--O--O-------------------+ O O O O O O O OO O O O O | 500000 ++ | | | | | 400000 ++ O | | O O O O OO O O O | 300000 ++ | | | 200000 ++ | | | *. .*.* .*.**. .*.**.*.**.*. *.*. *.*.**.*.* .**.*. *.*.**.| 100000 ++**.*.** * ** * * * * * | | 0 ++----------------------------------------------------------------+ will-it-scale.page_fault3.15.threads 2.2e+06 ++O--------------------------------------------------------------+ O O O OO OO O OO O OO OO O OO O OO OO O OO O O | 2e+06 ++ | | | 1.8e+06 ++ | 1.6e+06 ++ | | | 1.4e+06 ++ | | | 1.2e+06 ++ | 1e+06 ++ | | | 800000 ++ .*. *. .*. .* | *.**.*.**.**.*.** * **.*.**.*.**.**.*.**.*.**.** **.*.** *.* 600000 ++---------------------------------------------------------------+ will-it-scale.page_fault3.15.threads_idle 95 ++------------------------------------------------------------------+ 94.5 O+OO O O OO O OO O OO O O OO O OO OO O O OO O O | | O | 94 ++ | 93.5 ++ | | | 93 ++ | 92.5 ++ | 92 ++ | | | 91.5 ++ | 91 ++ | | | 90.5 ++* .*.* .*. *.*.* .**.*. *. | 90 *+-*-*----*---*-----*-*-*-**-*-**-*-**-*-*------**-*-*--*-*-**-*-**-* will-it-scale.page_fault3.30.threads 1.8e+06 ++O------------------------------------O-O-----------------------+ O O O OO O O OO O O OO O OO O OO OO O O O | 1.6e+06 ++ O O | | | 1.4e+06 ++ | 1.2e+06 ++ | | | 1e+06 ++ | | | 800000 ++ | 600000 ++ | | | 400000 ++* *. *. *. .*.**. .* .*.* .* .**.| * *.*.**.**.*.**.*.**.* *.* *.* ** * *.** *.* * * 200000 ++---------------------------------------------------------------+ will-it-scale.page_fault3.30.threads_idle 88 ++--------------------------------------------------------------------+ 87 O+O OO O O O O O OO O O OO O O OO O O OO O O OO O | | O | 86 ++ | 85 ++ | 84 ++ | 83 ++ | | | 82 ++ | 81 ++ | 80 ++ | 79 ++ | |.*. *. .*. .* .*. .**.| 78 *+ **.*.*.**.*.*.**.*.*.* *.*.**.* **.*.* *.*.*.**.*.*.** * * 77 ++--------------------------------------------------------------------+ will-it-scale.page_fault3.45.threads 1.6e+06 ++---------------------------------------------------------------+ O O O O OO OO O OO | 1.4e+06 ++OO OO O O OO O OO OO O OO O O | | | 1.2e+06 ++ | | | 1e+06 ++ | | | 800000 ++ | | | 600000 ++ | | | 400000 ++* | * *.*.**.**.*.**.*.**.**.*.**.*.**.**. .**.*.**.**.*.**.*.**.**.* 200000 ++-------------------------------------*-------------------------+ will-it-scale.page_fault3.45.threads_idle 80 ++--------------------------------------------------------------------+ O O OO OO O O OO O O OO O O OO O O OO O | 78 ++ O O O OO O | 76 ++ | | | 74 ++ | | | 72 ++ | | | 70 ++ | 68 ++ | |.*. *. .*. | 66 *+ **.*.*.* * **.*.*.**.*.*.**.*.*.**. .*.**.*.*.**.*.*.**.*.*.**.* | * | 64 ++--------------------------------------------------------------------+ will-it-scale.page_fault3.60.threads 1.8e+06 ++---------------------------------------------------------------+ | O O O O O | 1.6e+06 O+OO O O O OO O OO O O OO OO O O OO O | | O O | 1.4e+06 ++ | 1.2e+06 ++ | | | 1e+06 ++ | | | 800000 ++ | 600000 ++ | | | 400000 ++ | *.**.*.**.**. .**.*.**.* .*.**.*.**.**.*.**.*.**.**.*. *.*.**.**.* 200000 ++-----------*----------*-----------------------------*----------+ will-it-scale.page_fault3.60.threads_idle 75 O+---O---O-O--O-O------O--O---O-OO------O-----O--O--------------------+ | O O O OO O O O O O O O O O | | O | 70 ++ | | | | | 65 ++ | | | 60 ++ | | | | | 55 *+*.**.*.*.**. .*.**.*.*.**.*.*.**.*.*.**.*.*.**.*.*.**.*.*.**.*.*.**.* | * | | | 50 ++--------------------------------------------------------------------+ will-it-scale.page_fault3.90.threads 1.8e+06 ++---------------------------------------------------------------+ | OO O OO OO O O O O O O O OO O O O | 1.6e+06 O+ O O OO O O O OO | | | 1.4e+06 ++ | 1.2e+06 ++ | | | 1e+06 ++ | | | 800000 ++ | 600000 ++ | | | 400000 ++ | *. *.*.**.**.*.**.*.**.**.*.**.*.**.**.*.**.*.**.**.*.**.*.**.**.| 200000 ++*--------------------------------------------------------------* will-it-scale.page_fault3.90.threads_idle 70 ++--------------------------------------------------------------------+ | | 65 ++O OO O O OO O OO O O OO O O OO O OO O O OO O | 60 O+ O O | | | 55 ++ | | | 50 ++ | | | 45 ++ | 40 ++ | | | 35 ++ | *.*.**.*.*.**.*.*.**.*.*.**.*.*.**.*.*.**.*.*.**.*.*.**.*.*.**.*.*.**.* 30 ++--------------------------------------------------------------------+ will-it-scale.page_fault3.120.threads 1.8e+06 ++---------------------------------------------------------------+ O OO O OO OO O OO O O OO O OO O OO OO O OO O O | 1.6e+06 ++ | | O | 1.4e+06 ++ | 1.2e+06 ++ | | | 1e+06 ++ | | | 800000 ++ | 600000 ++ | | | 400000 ++ | *.**.*.**.**.*.**.*.**. *.*.**.*. *.**.*.**.*.**.**. .**.*.**.**.* 200000 ++---------------------*---------*------------------*------------+ will-it-scale.page_fault3.120.threads_idle 60 ++--------------------------------------------------------------------+ 55 O+O O O OO O O OO O OO O O O O O | | OO O O O O O O OO O | 50 ++ | 45 ++ | 40 ++ | 35 ++ | | | 30 ++ | 25 ++ | 20 ++ | 15 ++ | *.*.**.*.*.**.*.*.**.*.*. *.*.*.**. .**.*.*. *.*.*.**. .*.**.*. .**.* 10 ++ * *.* * * * | 5 ++--------------------------------------------------------------------+ vmstat.system.in 18600 ++--------------------------*--------------------------------------+ 18400 ++ *.* *. .* .* *.**.*.* *.*. * | *.* + : * * + : * + *.*.* .*. .*.* .*. *.*.**.* 18200 ++ * * : *.* * ** * * | 18000 ++ * | | | 17800 ++ | 17600 ++ | 17400 ++ | | | 17200 O+OO O O O | 17000 ++ O OO O OO OO O O OO O O O | | O O O O O O O | 16800 ++ O | 16600 ++-----------------------------------------------------------------+ vmstat.system.cs 7000 ++------------------------------------------------------------------+ 6500 ++OO O OO O OO O O OO O O OO O O | O O O O O O O OO O O | 6000 ++ | 5500 ++ | | | 5000 ++ | 4500 ++ | 4000 ++ | | | 3500 ++ | 3000 ++ | | | 2500 ++ .*. .* | 2000 *+**-*-*-**---**-*-**-*-*-**-*-**-*-**-*-*-**-*-**-*-**-*-*-**-*--*-* vmstat.cpu.id 68 ++-----O-O-O--O---O-------O-O-O-OO-O---O------------------------------+ | | 67 O+O OO O O O O O O O O O O OO O | 66 ++ | | | 65 ++ | 64 ++ | | | 63 ++ | 62 ++ | | | 61 ++ | 60 ++ | | | 59 *+*-**-*-*-**-*-*-**-*-*-**-*-*-**-*-*-**-*-*-**-*-*-**-*-*-**-*-*-**-* lock_stat.&(&mm->page_table_lock)->rlock.contentions 6e+07 ++-----------------------------------------------------------------+ |.* .* | 5e+07 *+ *.*.**.*.* .*.**.*.**.*.**.*.*.**.*.**.*.**.*.**.*.**.*.**.* *.* | * | | | 4e+07 ++ | | | 3e+07 ++ | | | 2e+07 ++ | | | | | 1e+07 ++ | | | 0 O+OO-O-OO-O-OO-O-OO-O-OO-O-OO-O-O-OO-O-OO-O-OO-O-------------------+ iostat.cpu.user 1.4 ++-------------------------------------------------------------------+ | | 1.3 ++ O O | | O OO O | 1.2 O+O O O O O O O O | | O O O O O O O | 1.1 ++ O OO O | | O | 1 ++ O O | | * * | 0.9 ++ + + **.* :+ .* * *. * | *.* .*. .* * + +: *. *.* :+ + .* + * +| 0.8 ++ * *.** *.*.**.*.*. .* * *.* * * *.* * | **.* | 0.7 ++-------------------------------------------------------------------+ iostat.cpu.system 40 *+--*--*---*--*---**-*-*-**-*-*-**-*-*--*---*-**-*-*-**-*-*-**-*-*-*--* 39 ++* * * * * * * * | | | 38 ++ | 37 ++ | | | 36 ++ | 35 ++ | 34 ++ | | | 33 ++ | 32 ++ | | O | 31 O+O OO O O OO O O OO O OO O O OO O O OO O O OO O | 30 ++--------------------------------------------------------------------+ iostat.cpu.idle 69 ++--------------------------------------------------------------------+ 68 O+O O O O O O O O O OO O O OO O O OO O OO O | | O O O O O | 67 ++ | 66 ++ | | | 65 ++ | 64 ++ | 63 ++ | | | 62 ++ | 61 ++ | | | 60 *+*.**.*.*.**.*.*.**.*.*. *.*.*.**. .*.**.*.*.**.*.*.**. .*.**.*.*.**.| 59 ++-----------------------*---------*--------------------*-------------*