Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752374AbdHRU3f (ORCPT ); Fri, 18 Aug 2017 16:29:35 -0400 Received: from mga02.intel.com ([134.134.136.20]:3301 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751660AbdHRU33 (ORCPT ); Fri, 18 Aug 2017 16:29:29 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.41,393,1498546800"; d="scan'208";a="120518454" From: "Liang, Kan" To: Linus Torvalds CC: Mel Gorman , Mel Gorman , "Kirill A. Shutemov" , Tim Chen , Peter Zijlstra , "Ingo Molnar" , Andi Kleen , Andrew Morton , Johannes Weiner , Jan Kara , linux-mm , Linux Kernel Mailing List Subject: RE: [PATCH 1/2] sched/wait: Break up long wake list walk Thread-Topic: [PATCH 1/2] sched/wait: Break up long wake list walk Thread-Index: AQHTFWNBYSKZKyu5OE6Y+fM96SxNwqKEIDEAgASaOPD//398AIAAsKCA//+X4wCAAQZZgIAAplUA//+BiwAAFSW90P//ia2A//9QKNA= Date: Fri, 18 Aug 2017 20:29:25 +0000 Message-ID: <37D7C6CF3E00A74B8858931C1DB2F07753787CCE@SHSMSX103.ccr.corp.intel.com> References: <84c7f26182b7f4723c0fe3b34ba912a9de92b8b7.1502758114.git.tim.c.chen@linux.intel.com> <37D7C6CF3E00A74B8858931C1DB2F07753786CE9@SHSMSX103.ccr.corp.intel.com> <37D7C6CF3E00A74B8858931C1DB2F0775378761B@SHSMSX103.ccr.corp.intel.com> <20170818122339.24grcbzyhnzmr4qw@techsingularity.net> <37D7C6CF3E00A74B8858931C1DB2F077537879BB@SHSMSX103.ccr.corp.intel.com> <20170818144622.oabozle26hasg5yo@techsingularity.net> <37D7C6CF3E00A74B8858931C1DB2F07753787AE4@SHSMSX103.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMjY5OTY4Y2EtNTAyMC00OTQwLWE4ODItZmEyZmM5YzY3ZDU3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6IlZiNnFua05aczM4QkFKZHhPRE1UeFpnNjRYT0psd1BWRE1OK25xSXViOWs9In0= x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by nfs id v7IKTfcL027104 Content-Length: 13694 Lines: 346 > >> > >> That indicates that it may be a hot page and it's possible that the > >> page is locked for a short time but waiters accumulate. What happens > >> if you leave NUMA balancing enabled but disable THP? > > > > No, disabling THP doesn't help the case. > > Interesting. That particular code sequence should only be active for THP. > What does the profile look like with THP disabled but with NUMA balancing > still enabled? Here is the profiling with THP disabled for wait_on_page_bit_common and wake_up_page_bit. The call stack of wait_on_page_bit_common # Overhead Trace output # ........ .................. # 100.00% (ffffffff821aefca) | ---wait_on_page_bit __migration_entry_wait migration_entry_wait do_swap_page __handle_mm_fault handle_mm_fault __do_page_fault do_page_fault page_fault | |--24.28%--_int_free | | | --24.15%--0 | |--15.48%--0x2b788 | | | --15.47%--0x127a2 | start_thread | |--13.54%--0x2b7b7 | | | |--8.68%--0x127a2 | | start_thread | | | --4.86%--0x127d8 | start_thread | |--11.69%--0x123a2 | start_thread | |--6.30%--0x12205 | 0x1206d | 0x11f85 | 0x11a05 | 0x10302 | | | --6.27%--0xa8ee | | | --5.48%--0x3af5 | | | --5.43%--__libc_start_main | |--5.24%--0x12352 | start_thread | |--3.56%--0x127bc | | | --3.55%--start_thread | |--3.06%--0x127a9 | start_thread | |--3.05%--0x127f2 | | | --3.05%--start_thread | |--2.62%--0x127df | start_thread | |--2.35%--0x1285e | start_thread | |--1.86%--0x1284b | start_thread | |--1.23%--0x12894 | start_thread | |--1.23%--0x12828 | start_thread | |--1.12%--0x1233c | start_thread | |--1.02%--0x12881 | start_thread | |--0.99%--0x12773 | start_thread | --0.97%--0x12815 start_thread The profile of wake_up_page_bit is still a 10 sec sample. # Samples: 5K of event 'probe:wake_up_page_bit' # Event count (approx.): 5645 # # Overhead Trace output # ........ .................. # 100.00% (ffffffff821ad000) | ---wake_up_page_bit | |--50.89%--do_wp_page | __handle_mm_fault | handle_mm_fault | __do_page_fault | do_page_fault | page_fault | | | |--38.97%--_dl_fixup | | | | | |--16.88%--0x7f933d9f2e40 | | | 0 | | | | | |--13.73%--0x7fb87a828e40 | | | 0 | | | | | |--4.84%--0x7fed49202e40 | | | 0 | | | | | |--0.87%--0x7fed491ffa50 | | | 0 | | | | | |--0.73%--0x7f933d9efa50 | | | 0 | | | | | --0.71%--0x7fed492024b0 | | 0 | | | |--3.14%--_dl_fini | | __run_exit_handlers | | | | | |--1.81%--0x7fb87994f2a0 | | | 0 | | | | | |--0.71%--0x7fed483292a0 | | | 0 | | | | | --0.62%--0x7f933cb192a0 | | 0 | | | |--1.91%--0x6ad0 | | __run_exit_handlers | | | | | |--1.03%--0x7fb87994f2a0 | | | 0 | | | | | --0.87%--0x7f933cb192a0 | | 0 | | | |--1.52%--ped_disk_type_unregister | | __run_exit_handlers | | | | | --1.06%--0x7fed483292a0 | | 0 | | | |--1.06%--0xcd89 | | __run_exit_handlers | | | | | --0.51%--0x7fb87994f2a0 | | 0 | | | |--1.05%--__offtime | | 0 | | | |--0.83%--0x45f9 | | __run_exit_handlers | | | | | --0.73%--0x7fed483292a0 | | 0 | | | |--0.66%--0x10de8 | | __run_exit_handlers | | | --0.57%--0x3455 | __run_exit_handlers | |--45.85%--migrate_pages | migrate_misplaced_page | __handle_mm_fault | handle_mm_fault | __do_page_fault | do_page_fault | page_fault | | | |--12.21%--0x42f2 | | 0x11f77 | | 0x11a05 | | 0x10302 | | 0xa8ee | | | | | --9.44%--0x3af5 | | __libc_start_main | | | |--3.79%--_int_free | | 0 | | | |--2.69%--_dl_fini | | __run_exit_handlers | | | | | |--1.17%--0x7f933cb192a0 | | | 0 | | | | | |--0.85%--0x7fb87994f2a0 | | | 0 | | | | | --0.67%--0x7fed483292a0 | | 0 | | | |--2.57%--0x12205 | | 0x1206d | | 0x11f85 | | 0x11a05 | | 0x10302 | | 0xa8ee | | | | | --1.98%--0x3af5 | | __libc_start_main | | | |--1.20%--_dl_fixup | | | | | |--0.71%--0x3af5 | | | __libc_start_main | | | | | --0.50%--_dl_fini | | __run_exit_handlers | | | |--1.15%--do_lookup_x | | | |--0.99%--0xcc26 | | __run_exit_handlers | | | |--0.90%--ped_device_free_all | | __run_exit_handlers | | | |--0.89%--__do_global_dtors_aux | | __run_exit_handlers | | | |--0.89%--0x3448 | | __run_exit_handlers | | | | | --0.53%--0x7fb87994f2a0 | | 0 | | | |--0.83%--0x25bc4 | | __run_exit_handlers | | | |--0.83%--check_match.9440 | | 0xae470 | | | |--0.80%--0x30f0 | | __run_exit_handlers | | | |--0.73%--0x17a0 | | __run_exit_handlers | | | |--0.71%--0xcd60 | | __run_exit_handlers | | | |--0.71%--0x4754 | | __run_exit_handlers | | | |--0.69%--dm_get_suspended_counter@plt | | __run_exit_handlers | | | |--0.60%--free@plt | | 0 | | | |--0.60%--0x1580 | | __run_exit_handlers | | | |--0.55%--__tz_compute | | 0 | | | |--0.55%--0x6020 | | __run_exit_handlers | | | |--0.55%--__do_global_dtors_aux | | __run_exit_handlers | | | |--0.53%--0x25ae4 | | __run_exit_handlers | | | |--0.53%--0x11a16 | | 0x10302 | | 0xa8ee | | | |--0.53%--dm_get_suspended_counter | | __run_exit_handlers | | | |--0.53%--ped_device_free_all@plt | | __run_exit_handlers | | | |--0.53%--__do_global_dtors_aux | | __run_exit_handlers | | | |--0.53%--0x1620 | | __run_exit_handlers | | | |--0.50%--__cxa_finalize@plt | | _dl_fini | | __run_exit_handlers | | | --0.50%--0x1910 | __run_exit_handlers | |--1.72%--filemap_map_pages | __handle_mm_fault | handle_mm_fault | __do_page_fault | do_page_fault | page_fault | --1.54%--__handle_mm_fault handle_mm_fault __do_page_fault do_page_fault page_fault | |--0.69%--memset | _dl_map_object | --0.64%--_dl_relocate_object dl_main _dl_sysdep_start 0x40 Thanks, Kan