Re: [lkp-robot] [mm, vmscan] 5e56dfbd83: fsmark.files_per_sec -11.1% regression

From: Ye Xiaolong
Date: Tue Jan 24 2017 - 23:27:54 EST


On 01/24, Michal Hocko wrote:
>On Mon 23-01-17 09:26:44, kernel test robot wrote:
>>
>> Greeting,
>>
>> FYI, we noticed a -11.1% regression of fsmark.files_per_sec due to commit:
>>
>>
>> commit: 5e56dfbd837421b7fa3c6c06018c6701e2704917 ("mm, vmscan: consider eligible zones in get_scan_count")
>> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
>
>This is more than unexpected. This patch should be basically noop for
>anything but CONFIG_HIGHMEM systems. And your config says this is 64b
>kernel. Are those results reproducible? And could you try to compare

Yes, the results are well reproducible, both the commit in question and its
parent have ran for 4 times.

>perf profiles before and after the patch.

Here is the perf profiles,

Before the patch:
"perf-profile.children.cycles-pp.verify_cpu"=>[70.92],
"perf-profile.children.cycles-pp.cpu_startup_entry"=>[70.92],
"perf-profile.children.cycles-pp.do_idle"=>[70.69],
"perf-profile.children.cycles-pp.call_cpuidle"=>[69.18],
"perf-profile.children.cycles-pp.cpuidle_enter"=>[69.14],
"perf-profile.children.cycles-pp.cpuidle_enter_state"=>[68.63],
"perf-profile.children.cycles-pp.start_secondary"=>[66.52],
"perf-profile.children.cycles-pp.intel_idle"=>[39.82],
"perf-profile.children.cycles-pp.ret_from_fork"=>[19.28],
"perf-profile.children.cycles-pp.kthread"=>[19.26],
"perf-profile.children.cycles-pp.md_thread"=>[16.0],
"perf-profile.children.cycles-pp.raid5d"=>[15.98],
"perf-profile.children.cycles-pp.handle_active_stripes"=>[15.68],
"perf-profile.children.cycles-pp.handle_stripe"=>[15.62],
"perf-profile.children.cycles-pp.__irqentry_text_start"=>[14.61],
"perf-profile.children.cycles-pp.smp_apic_timer_interrupt"=>[14.41],
"perf-profile.children.cycles-pp.raid_run_ops"=>[11.22],
"perf-profile.children.cycles-pp.poll_idle"=>[10.53],
"perf-profile.children.cycles-pp._raw_spin_lock"=>[9.31],
"perf-profile.children.cycles-pp.entry_SYSCALL_64_fastpath"=>[9.17],
"perf-profile.children.cycles-pp.irq_enter"=>[9.16],
"perf-profile.children.cycles-pp.tick_irq_enter"=>[8.88],
"perf-profile.children.cycles-pp.sys_write"=>[8.36],
"perf-profile.children.cycles-pp.vfs_write"=>[8.29],
"perf-profile.children.cycles-pp.__vfs_write"=>[8.15],
"perf-profile.children.cycles-pp.btrfs_file_write_iter"=>[8.04],
"perf-profile.children.cycles-pp.__btrfs_buffered_write"=>[7.87],
"perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath"=>[7.42],
"perf-profile.children.cycles-pp.async_copy_data"=>[7.02],
"perf-profile.children.cycles-pp.tick_do_update_jiffies64"=>[6.86],
"perf-profile.children.cycles-pp.irq_exit"=>[4.53],
"perf-profile.children.cycles-pp.x86_64_start_kernel"=>[4.4],
"perf-profile.children.cycles-pp.x86_64_start_reservations"=>[4.4],
"perf-profile.children.cycles-pp.start_kernel"=>[4.4],
"perf-profile.children.cycles-pp.rest_init"=>[4.4],
"perf-profile.children.cycles-pp.generic_make_request"=>[3.87],
"perf-profile.children.cycles-pp.memcpy_erms"=>[3.85],
"perf-profile.children.cycles-pp.__softirqentry_text_start"=>[3.15],
"perf-profile.children.cycles-pp.worker_thread"=>[3.01],
"perf-profile.children.cycles-pp.btrfs_copy_from_user"=>[2.96],
"perf-profile.children.cycles-pp.process_one_work"=>[2.89],
"perf-profile.children.cycles-pp.local_apic_timer_interrupt"=>[2.87],
"perf-profile.children.cycles-pp.copy_user_enhanced_fast_string"=>[2.82],
"perf-profile.children.cycles-pp.hrtimer_interrupt"=>[2.67],
"perf-profile.children.cycles-pp.ops_run_io"=>[2.54],
"perf-profile.children.cycles-pp.ret_from_intr"=>[2.5],
"perf-profile.children.cycles-pp.do_IRQ"=>[2.5],
"perf-profile.children.cycles-pp.btrfs_scrubparity_helper"=>[2.47],
"perf-profile.children.cycles-pp.btrfs_submit_helper"=>[2.27],
"perf-profile.children.cycles-pp.pending_bios_fn"=>[2.27],
"perf-profile.children.cycles-pp.run_scheduled_bios"=>[2.27],
"perf-profile.children.cycles-pp.submit_bio"=>[2.27],
"perf-profile.children.cycles-pp.md_make_request"=>[2.27],
"perf-profile.children.cycles-pp.raid5_make_request"=>[2.21],
"perf-profile.children.cycles-pp.blk_done_softirq"=>[2.19],
"perf-profile.children.cycles-pp.scsi_softirq_done"=>[2.19],
"perf-profile.children.cycles-pp.scsi_finish_command"=>[2.16],
"perf-profile.children.cycles-pp.scsi_io_completion"=>[2.13],
"perf-profile.children.cycles-pp.scsi_end_request"=>[2.13],
"perf-profile.children.cycles-pp.irq_work_run"=>[1.97],
"perf-profile.children.cycles-pp.irq_work_run_list"=>[1.97],
"perf-profile.children.cycles-pp.irq_work_interrupt"=>[1.96],
"perf-profile.children.cycles-pp.smp_irq_work_interrupt"=>[1.96],
"perf-profile.children.cycles-pp.perf_duration_warn"=>[1.96],
"perf-profile.children.cycles-pp.printk"=>[1.96],
"perf-profile.children.cycles-pp.vprintk_default"=>[1.96],
"perf-profile.children.cycles-pp.vprintk_emit"=>[1.96],
"perf-profile.children.cycles-pp.console_unlock"=>[1.96],


After the patch:

"perf-profile.children.cycles-pp.verify_cpu"=>[78.74],
"perf-profile.children.cycles-pp.cpu_startup_entry"=>[78.74],
"perf-profile.children.cycles-pp.do_idle"=>[78.5],
"perf-profile.children.cycles-pp.start_secondary"=>[76.96],
"perf-profile.children.cycles-pp.call_cpuidle"=>[76.44],
"perf-profile.children.cycles-pp.cpuidle_enter"=>[76.36],
"perf-profile.children.cycles-pp.cpuidle_enter_state"=>[75.89],
"perf-profile.children.cycles-pp.intel_idle"=>[46.78],
"perf-profile.children.cycles-pp.__irqentry_text_start"=>[17.15],
"perf-profile.children.cycles-pp.smp_apic_timer_interrupt"=>[16.95],
"perf-profile.children.cycles-pp._raw_spin_lock"=>[11.27],
"perf-profile.children.cycles-pp.irq_enter"=>[10.85],
"perf-profile.children.cycles-pp.tick_irq_enter"=>[10.4],
"perf-profile.children.cycles-pp.entry_SYSCALL_64_fastpath"=>[10.4],
"perf-profile.children.cycles-pp.ret_from_fork"=>[10.16],
"perf-profile.children.cycles-pp.kthread"=>[10.16],
"perf-profile.children.cycles-pp.sys_write"=>[9.72],
"perf-profile.children.cycles-pp.vfs_write"=>[9.66],
"perf-profile.children.cycles-pp.__vfs_write"=>[9.59],
"perf-profile.children.cycles-pp.btrfs_file_write_iter"=>[9.45],
"perf-profile.children.cycles-pp.__btrfs_buffered_write"=>[9.35],
"perf-profile.children.cycles-pp.native_queued_spin_lock_slowpath"=>[8.93],
"perf-profile.children.cycles-pp.poll_idle"=>[8.43],
"perf-profile.children.cycles-pp.tick_do_update_jiffies64"=>[7.91],
"perf-profile.children.cycles-pp.md_thread"=>[7.57],
"perf-profile.children.cycles-pp.raid5d"=>[7.57],
"perf-profile.children.cycles-pp.handle_active_stripes"=>[7.38],
"perf-profile.children.cycles-pp.handle_stripe"=>[7.37],
"perf-profile.children.cycles-pp.raid_run_ops"=>[5.03],
"perf-profile.children.cycles-pp.irq_exit"=>[3.59],
"perf-profile.children.cycles-pp.async_copy_data"=>[3.41],
"perf-profile.children.cycles-pp.btrfs_copy_from_user"=>[3.36],
"perf-profile.children.cycles-pp.local_apic_timer_interrupt"=>[3.29],
"perf-profile.children.cycles-pp.copy_user_enhanced_fast_string"=>[3.22],
"perf-profile.children.cycles-pp.hrtimer_interrupt"=>[3.15],
"perf-profile.children.cycles-pp.memcpy_erms"=>[2.37],
"perf-profile.children.cycles-pp.worker_thread"=>[2.33],
"perf-profile.children.cycles-pp.process_one_work"=>[2.22],
"perf-profile.children.cycles-pp.generic_make_request"=>[2.15],
"perf-profile.children.cycles-pp.btrfs_delalloc_reserve_metadata"=>[2.0],
"perf-profile.children.cycles-pp.__hrtimer_run_queues"=>[1.93],
"perf-profile.children.cycles-pp.prepare_pages"=>[1.8],
"perf-profile.children.cycles-pp.x86_64_start_kernel"=>[1.78],
"perf-profile.children.cycles-pp.x86_64_start_reservations"=>[1.78],
"perf-profile.children.cycles-pp.start_kernel"=>[1.78],
"perf-profile.children.cycles-pp.rest_init"=>[1.78],
"perf-profile.children.cycles-pp.pagecache_get_page"=>[1.76],
"perf-profile.children.cycles-pp.__tick_nohz_idle_enter"=>[1.73],
"perf-profile.children.cycles-pp.btrfs_scrubparity_helper"=>[1.7],
"perf-profile.children.cycles-pp.tick_nohz_irq_exit"=>[1.63],
"perf-profile.children.cycles-pp.__softirqentry_text_start"=>[1.62],
"perf-profile.children.cycles-pp.btrfs_submit_helper"=>[1.46],
"perf-profile.children.cycles-pp.pending_bios_fn"=>[1.46],
"perf-profile.children.cycles-pp.run_scheduled_bios"=>[1.46],
"perf-profile.children.cycles-pp.submit_bio"=>[1.45],
"perf-profile.children.cycles-pp.md_make_request"=>[1.45],
"perf-profile.children.cycles-pp.raid5_make_request"=>[1.42],
"perf-profile.children.cycles-pp.irq_work_interrupt"=>[1.36],
"perf-profile.children.cycles-pp.smp_irq_work_interrupt"=>[1.36],
"perf-profile.children.cycles-pp.irq_work_run"=>[1.36],
"perf-profile.children.cycles-pp.irq_work_run_list"=>[1.36],
"perf-profile.children.cycles-pp.perf_duration_warn"=>[1.36],
"perf-profile.children.cycles-pp.printk"=>[1.36],
"perf-profile.children.cycles-pp.vprintk_default"=>[1.36],
"perf-profile.children.cycles-pp.vprintk_emit"=>[1.36],
"perf-profile.children.cycles-pp.console_unlock"=>[1.36],


Thanks,
Xiaolong

>--
>Michal Hocko
>SUSE Labs