From: Aaron Lu <aaron.lu@intel.com> To: Dave Hansen <dave.hansen@intel.com> Cc: Michal Hocko <mhocko@kernel.org>, Tim Chen <tim.c.chen@linux.intel.com>, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tim Chen <tim.c.chen@intel.com>, Andrew Morton <akpm@linux-foundation.org>, Ying Huang <ying.huang@intel.com> Subject: Re: [PATCH v2 0/5] mm: support parallel free of memory Date: Wed, 22 Mar 2017 16:02:06 +0800 [thread overview] Message-ID: <20170322080206.GB2360@aaronlu.sh.intel.com> (raw) In-Reply-To: <ae4e3597-f664-e5c4-97fb-e07f230d5017@intel.com> On Tue, Mar 21, 2017 at 07:54:37AM -0700, Dave Hansen wrote: > On 03/16/2017 02:07 AM, Michal Hocko wrote: > > On Wed 15-03-17 14:38:34, Tim Chen wrote: > >> max_active: time > >> 1 8.9s ±0.5% > >> 2 5.65s ±5.5% > >> 4 4.84s ±0.16% > >> 8 4.77s ±0.97% > >> 16 4.85s ±0.77% > >> 32 6.21s ±0.46% > > > > OK, but this will depend on the HW, right? Also now that I am looking at > > those numbers more closely. This was about unmapping 320GB area and > > using 4 times more CPUs you managed to half the run time. Is this really > > worth it? Sure if those CPUs were idle then this is a clear win but if > > the system is moderately busy then it doesn't look like a clear win to > > me. > > This still suffers from zone lock contention. It scales much better if > we are freeing memory from more than one zone. We would expect any > other generic page allocator scalability improvements to really help > here, too. > > Aaron, could you make sure to make sure that the memory being freed is > coming from multiple NUMA nodes? It might also be interesting to boot The test machine has 4 nodes and each has 128G memory. With the test size of 320G, at least 3 nodes are involved. But since the test is done on an idle system, I *guess* the allocated memory is physically continuous. Then when they are freed in virtually continuous order, it's likely that one after another physically continous 1G chunk are sent to the free kworkers. So roughly for the first 128 1G chunks, those workers will all be contending on the same zone. (well, it shouldn't be 128 kworkers all runnable contending for the same lock since early launched kworkers will have exited after finishing its job before some later launched kworkers start). > with a fake NUMA configuration with a *bunch* of nodes to see what the > best case looks like when zone lock contention isn't even in play where > one worker would be working on its own zone. Good idea, will post results here once I finished the test. Thanks.
WARNING: multiple messages have this Message-ID (diff)
From: Aaron Lu <aaron.lu@intel.com> To: Dave Hansen <dave.hansen@intel.com> Cc: Michal Hocko <mhocko@kernel.org>, Tim Chen <tim.c.chen@linux.intel.com>, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Tim Chen <tim.c.chen@intel.com>, Andrew Morton <akpm@linux-foundation.org>, Ying Huang <ying.huang@intel.com> Subject: Re: [PATCH v2 0/5] mm: support parallel free of memory Date: Wed, 22 Mar 2017 16:02:06 +0800 [thread overview] Message-ID: <20170322080206.GB2360@aaronlu.sh.intel.com> (raw) In-Reply-To: <ae4e3597-f664-e5c4-97fb-e07f230d5017@intel.com> On Tue, Mar 21, 2017 at 07:54:37AM -0700, Dave Hansen wrote: > On 03/16/2017 02:07 AM, Michal Hocko wrote: > > On Wed 15-03-17 14:38:34, Tim Chen wrote: > >> max_active: time > >> 1 8.9s +-0.5% > >> 2 5.65s +-5.5% > >> 4 4.84s +-0.16% > >> 8 4.77s +-0.97% > >> 16 4.85s +-0.77% > >> 32 6.21s +-0.46% > > > > OK, but this will depend on the HW, right? Also now that I am looking at > > those numbers more closely. This was about unmapping 320GB area and > > using 4 times more CPUs you managed to half the run time. Is this really > > worth it? Sure if those CPUs were idle then this is a clear win but if > > the system is moderately busy then it doesn't look like a clear win to > > me. > > This still suffers from zone lock contention. It scales much better if > we are freeing memory from more than one zone. We would expect any > other generic page allocator scalability improvements to really help > here, too. > > Aaron, could you make sure to make sure that the memory being freed is > coming from multiple NUMA nodes? It might also be interesting to boot The test machine has 4 nodes and each has 128G memory. With the test size of 320G, at least 3 nodes are involved. But since the test is done on an idle system, I *guess* the allocated memory is physically continuous. Then when they are freed in virtually continuous order, it's likely that one after another physically continous 1G chunk are sent to the free kworkers. So roughly for the first 128 1G chunks, those workers will all be contending on the same zone. (well, it shouldn't be 128 kworkers all runnable contending for the same lock since early launched kworkers will have exited after finishing its job before some later launched kworkers start). > with a fake NUMA configuration with a *bunch* of nodes to see what the > best case looks like when zone lock contention isn't even in play where > one worker would be working on its own zone. Good idea, will post results here once I finished the test. Thanks. -- 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>
next prev parent reply other threads:[~2017-03-22 8:09 UTC|newest] Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-03-15 8:59 [PATCH v2 0/5] mm: support parallel free of memory Aaron Lu 2017-03-15 8:59 ` Aaron Lu 2017-03-15 9:00 ` [PATCH v2 1/5] mm: add tlb_flush_mmu_free_batches Aaron Lu 2017-03-15 9:00 ` Aaron Lu 2017-03-15 9:00 ` [PATCH v2 2/5] mm: parallel free pages Aaron Lu 2017-03-15 9:00 ` Aaron Lu 2017-03-15 9:42 ` Hillf Danton 2017-03-15 9:42 ` Hillf Danton 2017-03-15 11:54 ` Aaron Lu 2017-03-15 11:54 ` Aaron Lu 2017-03-15 9:00 ` [PATCH v2 3/5] mm: use a dedicated workqueue for the free workers Aaron Lu 2017-03-15 9:00 ` Aaron Lu 2017-03-22 6:33 ` Minchan Kim 2017-03-22 6:33 ` Minchan Kim 2017-03-22 8:41 ` Aaron Lu 2017-03-22 8:41 ` Aaron Lu 2017-03-22 8:55 ` Minchan Kim 2017-03-22 8:55 ` Minchan Kim 2017-03-22 13:43 ` Aaron Lu 2017-03-22 13:43 ` Aaron Lu 2017-03-23 5:53 ` Minchan Kim 2017-03-23 5:53 ` Minchan Kim 2017-03-23 15:38 ` Dave Hansen 2017-03-23 15:38 ` Dave Hansen 2017-03-24 12:37 ` Aaron Lu 2017-03-24 12:37 ` Aaron Lu 2017-03-15 9:00 ` [PATCH v2 4/5] mm: add force_free_pages in zap_pte_range Aaron Lu 2017-03-15 9:00 ` Aaron Lu 2017-03-15 9:00 ` [PATCH v2 5/5] mm: add debugfs interface for parallel free tuning Aaron Lu 2017-03-15 9:00 ` Aaron Lu 2017-03-15 14:18 ` [PATCH v2 0/5] mm: support parallel free of memory Michal Hocko 2017-03-15 14:18 ` Michal Hocko 2017-03-15 15:44 ` Aaron Lu 2017-03-15 15:44 ` Aaron Lu 2017-03-15 16:28 ` Michal Hocko 2017-03-15 16:28 ` Michal Hocko 2017-03-15 21:38 ` Tim Chen 2017-03-15 21:38 ` Tim Chen 2017-03-16 9:07 ` Michal Hocko 2017-03-16 9:07 ` Michal Hocko 2017-03-16 18:36 ` Tim Chen 2017-03-16 18:36 ` Tim Chen 2017-03-17 7:47 ` Michal Hocko 2017-03-17 7:47 ` Michal Hocko 2017-03-17 8:07 ` Minchan Kim 2017-03-17 8:07 ` Minchan Kim 2017-03-17 12:33 ` Aaron Lu 2017-03-17 12:33 ` Aaron Lu 2017-03-17 12:59 ` Michal Hocko 2017-03-17 12:59 ` Michal Hocko 2017-03-17 13:16 ` Peter Zijlstra 2017-03-17 13:16 ` Peter Zijlstra 2017-03-17 12:53 ` Peter Zijlstra 2017-03-17 12:53 ` Peter Zijlstra 2017-03-17 13:05 ` Michal Hocko 2017-03-17 13:05 ` Michal Hocko 2017-03-21 14:54 ` Dave Hansen 2017-03-21 14:54 ` Dave Hansen 2017-03-22 8:02 ` Aaron Lu [this message] 2017-03-22 8:02 ` Aaron Lu 2017-03-24 7:04 ` Aaron Lu 2017-03-24 7:04 ` Aaron Lu 2017-03-21 15:18 ` Tim Chen 2017-03-21 15:18 ` Tim Chen 2017-03-16 6:54 ` Aaron Lu 2017-03-16 6:54 ` Aaron Lu 2017-03-16 7:34 ` Aaron Lu 2017-03-16 7:34 ` Aaron Lu 2017-03-16 13:51 ` Aaron Lu 2017-03-16 13:51 ` Aaron Lu 2017-03-16 14:14 ` Aaron Lu 2017-03-16 14:14 ` Aaron Lu 2017-03-15 14:56 ` Vlastimil Babka 2017-03-15 14:56 ` Vlastimil Babka 2017-03-15 15:50 ` Aaron Lu 2017-03-15 15:50 ` Aaron Lu 2017-03-17 3:10 ` Aaron Lu 2017-03-17 3:10 ` Aaron Lu 2017-03-16 19:38 ` Alex Thorlton 2017-03-16 19:38 ` Alex Thorlton 2017-03-17 2:21 ` Aaron Lu 2017-03-17 2:21 ` Aaron Lu 2017-03-20 19:15 ` Alex Thorlton 2017-03-20 19:15 ` Alex Thorlton
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170322080206.GB2360@aaronlu.sh.intel.com \ --to=aaron.lu@intel.com \ --cc=akpm@linux-foundation.org \ --cc=dave.hansen@intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=mhocko@kernel.org \ --cc=tim.c.chen@intel.com \ --cc=tim.c.chen@linux.intel.com \ --cc=ying.huang@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.