Re: [LKP] [mm] 23047a96d7: vm-scalability.throughput -23.8% regression

2016-05-27 Thread Ye Xiaolong
On Wed, May 25, 2016 at 02:06:17PM +0800, Ye Xiaolong wrote:
>On Mon, May 23, 2016 at 04:46:05PM -0400, Johannes Weiner wrote:
>>Hi,
>>
>>thanks for your report.
>>
>>On Tue, May 17, 2016 at 12:58:05PM +0800, kernel test robot wrote:
>>> FYI, we noticed vm-scalability.throughput -23.8% regression due to commit:
>>> 
>>> commit 23047a96d7cfcfca1a6d026ecaec526ea4803e9e ("mm: workingset: 
>>> per-cgroup cache thrash detection")
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>>> 
>>> in testcase: vm-scalability
>>> on test machine: lkp-hsw01: 56 threads Grantley Haswell-EP with 64G memory
>>> with following conditions: 
>>> cpufreq_governor=performance/runtime=300s/test=lru-file-readtwice
>>
>>That test hammers the LRU activation path, to which this patch added
>>the cgroup lookup and pinning code. Does the following patch help?
>>

Hi, Johannes

FYI, I have done more tests with your fix patch.

1) apply it on top of latest kernel (head commit: 478a1469("Merge tag 
'dax-locking-for-4.7' of
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm")

The following is the comparison info among first bad commit's parent, first
bad commit, head commit of linus' master branch, your fix commit(a7abed95):

=
compiler/cpufreq_governor/kconfig/rootfs/runtime/tbox_group/test/testcase:
  
gcc-4.9/performance/x86_64-rhel/debian-x86_64-2015-02-07.cgz/300s/lkp-hsw01/lru-file-readtwice/vm-scalability

commit: 
  612e44939c3c77245ac80843c0c7876c8cf97282
  23047a96d7cfcfca1a6d026ecaec526ea4803e9e
  478a1469a7d27fe6b2f85fc801ecdeb8afc836e6
  a7abed950afdc1186d4eaf442b7eb296ff04c947

612e44939c3c7724 23047a96d7cfcfca1a6d026eca 478a1469a7d27fe6b2f85fc801 
a7abed950afdc1186d4eaf442b
 -- -- 
--
 %stddev %change %stddev %change %stddev 
%change %stddev
 \  |\  |\  
|\
  28384711 ±  0% -23.8%   21621405 ±  0% -12.4%   24865101 ±  4%  
-8.1%   26076417 ±  3%  vm-scalability.throughput
   1854112 ±  0%  -7.7%1711141 ±  0%  +6.4%1973257 ±  4%  
+9.2%2025214 ±  3%  vm-scalability.time.involuntary_context_switches
  5279 ±  0%  -0.7%   5243 ±  0%  -2.6%   5143 ±  0%  
-2.4%   5153 ±  0%  vm-scalability.time.percent_of_cpu_this_job_got
 16267 ±  0%  -0.6%  16173 ±  0%  -2.0%  15934 ±  0%  
-1.8%  15978 ±  0%  vm-scalability.time.system_time
176.03 ±  0% -22.2% 136.95 ±  1% -10.4% 157.66 ±  1% 
-11.2% 156.32 ±  0%  vm-scalability.time.user_time
302905 ±  2% -31.2% 208386 ±  0%  +5.8% 320618 ± 47% 
-36.0% 193991 ± 22%  vm-scalability.time.voluntary_context_switches
  0.92 ±  2% +51.0%   1.38 ±  2% +96.5%   1.80 ±  0% 
+97.3%   1.81 ±  0%  perf-profile.cycles-pp.kswapd
  2585 ±  1%  -1.9%   2536 ±  0%  +9.6%   2834 ±  1% 
+10.7%   2862 ±  1%  uptime.idle
754212 ±  1% -29.2% 533832 ±  2% -34.8% 491397 ±  2% 
-27.5% 54 ±  8%  softirqs.RCU
151918 ±  8%  +5.7% 160522 ±  5% -17.4% 125419 ± 18% 
-22.7% 117409 ±  7%  softirqs.SCHED
176.03 ±  0% -22.2% 136.95 ±  1% -10.4% 157.66 ±  1% 
-11.2% 156.32 ±  0%  time.user_time
302905 ±  2% -31.2% 208386 ±  0%  +5.8% 320618 ± 47% 
-36.0% 193991 ± 22%  time.voluntary_context_switches


2) apply it on top of v4.6 (head commit: 2dcd0af5("Linux 4.6"))

The following is the comparison info among first bad commit's parent, first
bad commit, v4.6, your fix commit(c05f8814):

=
compiler/cpufreq_governor/kconfig/rootfs/runtime/tbox_group/test/testcase:
  
gcc-4.9/performance/x86_64-rhel/debian-x86_64-2015-02-07.cgz/300s/lkp-hsw01/lru-file-readtwice/vm-scalability

commit: 
  612e44939c3c77245ac80843c0c7876c8cf97282
  23047a96d7cfcfca1a6d026ecaec526ea4803e9e
  v4.6
  c05f8814641ceabbc628cd4edc7f64ff58498d5a

612e44939c3c7724 23047a96d7cfcfca1a6d026eca   v4.6 
c05f8814641ceabbc628cd4edc
 -- -- 
--
 %stddev %change %stddev %change %stddev 
%change %stddev
 \  |\  |\  
|\
  28384711 ±  0% -23.8%   21621405 ±  0% -18.9%   23013011 ±  0% 
-19.2%   22937943 ±  0%  vm-scalability.throughput
   1854112 ±  0%  -7.7%1711141 ±  0%  -5.2%1757124 ±  0%  
-4.9%1762398 ±  0%  vm-scalability.time.involuntary_context_switches
 

Re: [LKP] [mm] 23047a96d7: vm-scalability.throughput -23.8% regression

2016-05-27 Thread Ye Xiaolong
On Wed, May 25, 2016 at 02:06:17PM +0800, Ye Xiaolong wrote:
>On Mon, May 23, 2016 at 04:46:05PM -0400, Johannes Weiner wrote:
>>Hi,
>>
>>thanks for your report.
>>
>>On Tue, May 17, 2016 at 12:58:05PM +0800, kernel test robot wrote:
>>> FYI, we noticed vm-scalability.throughput -23.8% regression due to commit:
>>> 
>>> commit 23047a96d7cfcfca1a6d026ecaec526ea4803e9e ("mm: workingset: 
>>> per-cgroup cache thrash detection")
>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>>> 
>>> in testcase: vm-scalability
>>> on test machine: lkp-hsw01: 56 threads Grantley Haswell-EP with 64G memory
>>> with following conditions: 
>>> cpufreq_governor=performance/runtime=300s/test=lru-file-readtwice
>>
>>That test hammers the LRU activation path, to which this patch added
>>the cgroup lookup and pinning code. Does the following patch help?
>>

Hi, Johannes

FYI, I have done more tests with your fix patch.

1) apply it on top of latest kernel (head commit: 478a1469("Merge tag 
'dax-locking-for-4.7' of
git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm")

The following is the comparison info among first bad commit's parent, first
bad commit, head commit of linus' master branch, your fix commit(a7abed95):

=
compiler/cpufreq_governor/kconfig/rootfs/runtime/tbox_group/test/testcase:
  
gcc-4.9/performance/x86_64-rhel/debian-x86_64-2015-02-07.cgz/300s/lkp-hsw01/lru-file-readtwice/vm-scalability

commit: 
  612e44939c3c77245ac80843c0c7876c8cf97282
  23047a96d7cfcfca1a6d026ecaec526ea4803e9e
  478a1469a7d27fe6b2f85fc801ecdeb8afc836e6
  a7abed950afdc1186d4eaf442b7eb296ff04c947

612e44939c3c7724 23047a96d7cfcfca1a6d026eca 478a1469a7d27fe6b2f85fc801 
a7abed950afdc1186d4eaf442b
 -- -- 
--
 %stddev %change %stddev %change %stddev 
%change %stddev
 \  |\  |\  
|\
  28384711 ±  0% -23.8%   21621405 ±  0% -12.4%   24865101 ±  4%  
-8.1%   26076417 ±  3%  vm-scalability.throughput
   1854112 ±  0%  -7.7%1711141 ±  0%  +6.4%1973257 ±  4%  
+9.2%2025214 ±  3%  vm-scalability.time.involuntary_context_switches
  5279 ±  0%  -0.7%   5243 ±  0%  -2.6%   5143 ±  0%  
-2.4%   5153 ±  0%  vm-scalability.time.percent_of_cpu_this_job_got
 16267 ±  0%  -0.6%  16173 ±  0%  -2.0%  15934 ±  0%  
-1.8%  15978 ±  0%  vm-scalability.time.system_time
176.03 ±  0% -22.2% 136.95 ±  1% -10.4% 157.66 ±  1% 
-11.2% 156.32 ±  0%  vm-scalability.time.user_time
302905 ±  2% -31.2% 208386 ±  0%  +5.8% 320618 ± 47% 
-36.0% 193991 ± 22%  vm-scalability.time.voluntary_context_switches
  0.92 ±  2% +51.0%   1.38 ±  2% +96.5%   1.80 ±  0% 
+97.3%   1.81 ±  0%  perf-profile.cycles-pp.kswapd
  2585 ±  1%  -1.9%   2536 ±  0%  +9.6%   2834 ±  1% 
+10.7%   2862 ±  1%  uptime.idle
754212 ±  1% -29.2% 533832 ±  2% -34.8% 491397 ±  2% 
-27.5% 54 ±  8%  softirqs.RCU
151918 ±  8%  +5.7% 160522 ±  5% -17.4% 125419 ± 18% 
-22.7% 117409 ±  7%  softirqs.SCHED
176.03 ±  0% -22.2% 136.95 ±  1% -10.4% 157.66 ±  1% 
-11.2% 156.32 ±  0%  time.user_time
302905 ±  2% -31.2% 208386 ±  0%  +5.8% 320618 ± 47% 
-36.0% 193991 ± 22%  time.voluntary_context_switches


2) apply it on top of v4.6 (head commit: 2dcd0af5("Linux 4.6"))

The following is the comparison info among first bad commit's parent, first
bad commit, v4.6, your fix commit(c05f8814):

=
compiler/cpufreq_governor/kconfig/rootfs/runtime/tbox_group/test/testcase:
  
gcc-4.9/performance/x86_64-rhel/debian-x86_64-2015-02-07.cgz/300s/lkp-hsw01/lru-file-readtwice/vm-scalability

commit: 
  612e44939c3c77245ac80843c0c7876c8cf97282
  23047a96d7cfcfca1a6d026ecaec526ea4803e9e
  v4.6
  c05f8814641ceabbc628cd4edc7f64ff58498d5a

612e44939c3c7724 23047a96d7cfcfca1a6d026eca   v4.6 
c05f8814641ceabbc628cd4edc
 -- -- 
--
 %stddev %change %stddev %change %stddev 
%change %stddev
 \  |\  |\  
|\
  28384711 ±  0% -23.8%   21621405 ±  0% -18.9%   23013011 ±  0% 
-19.2%   22937943 ±  0%  vm-scalability.throughput
   1854112 ±  0%  -7.7%1711141 ±  0%  -5.2%1757124 ±  0%  
-4.9%1762398 ±  0%  vm-scalability.time.involuntary_context_switches