From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753521AbdAEGWx (ORCPT ); Thu, 5 Jan 2017 01:22:53 -0500 Received: from LGEAMRELO11.lge.com ([156.147.23.51]:50411 "EHLO lgeamrelo11.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751488AbdAEGWp (ORCPT ); Thu, 5 Jan 2017 01:22:45 -0500 X-Original-SENDERIP: 156.147.1.121 X-Original-MAILFROM: minchan@kernel.org X-Original-SENDERIP: 165.244.249.23 X-Original-MAILFROM: minchan@kernel.org X-Original-SENDERIP: 10.177.223.161 X-Original-MAILFROM: minchan@kernel.org Date: Thu, 5 Jan 2017 15:15:57 +0900 From: Minchan Kim To: "Huang, Ying" CC: Jan Kara , Tim Chen , Andrew Morton , , , , , , Hugh Dickins , Shaohua Li , Rik van Riel , Andrea Arcangeli , "Kirill A . Shutemov" , Vladimir Davydov , Johannes Weiner , Michal Hocko , Hillf Danton , Christian Borntraeger , Jonathan Corbet , Peter Zijlstra , Nicholas Piggin Subject: Re: [PATCH v4 0/9] mm/swap: Regular page swap optimizations Message-ID: <20170105061557.GD24371@bbox> References: <20161227074503.GA10616@bbox> <20170102154841.GG18058@quack2.suse.cz> <20170103043411.GA15657@bbox> <87inpwu29c.fsf@yhuang-dev.intel.com> MIME-Version: 1.0 In-Reply-To: <87inpwu29c.fsf@yhuang-dev.intel.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-MIMETrack: Itemize by SMTP Server on LGEKRMHUB06/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2017/01/05 15:15:59, Serialize by Router on LGEKRMHUB06/LGE/LG Group(Release 8.5.3FP6|November 21, 2013) at 2017/01/05 15:16:09, Serialize complete at 2017/01/05 15:16:09 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Huang, On Tue, Jan 03, 2017 at 01:43:43PM +0800, Huang, Ying wrote: > Hi, Minchan, > > Minchan Kim writes: > > > Hi Jan, > > > > On Mon, Jan 02, 2017 at 04:48:41PM +0100, Jan Kara wrote: > >> Hi, > >> > >> On Tue 27-12-16 16:45:03, Minchan Kim wrote: > >> > > Patch 3 splits the swap cache radix tree into 64MB chunks, reducing > >> > > the rate that we have to contende for the radix tree. > >> > > >> > To me, it's rather hacky. I think it might be common problem for page cache > >> > so can we think another generalized way like range_lock? Ccing Jan. > >> > >> I agree on the hackyness of the patch and that page cache would suffer with > >> the same contention (although the files are usually smaller than swap so it > >> would not be that visible I guess). But I don't see how range lock would > >> help here - we need to serialize modifications of the tree structure itself > >> and that is difficult to achieve with the range lock. So what you would > >> need is either a different data structure for tracking swap cache entries > >> or a finer grained locking of the radix tree. > > > > Thanks for the comment, Jan. > > > > I think there are more general options. One is to shrink batching pages like > > Mel and Tim had approached. > > > > https://patchwork.kernel.org/patch/9008421/ > > https://patchwork.kernel.org/patch/9322793/ > > This helps to reduce the lock contention on radix tree of swap cache. > But splitting swap cache has much better performance. So we switched > from that solution to current solution. > > > Or concurrent page cache by peter. > > > > https://www.kernel.org/doc/ols/2007/ols2007v2-pages-311-318.pdf > > I think this is good, it helps swap and file cache. But I don't know > whether other people want to go this way and how much effort will be > needed. > > In contrast, splitting swap cache is quite simple, for implementation > and review. And the effect is good. I think general approach is better but I don't want to be a a party pooper if every people are okay with this. I just wanted to point out we need to consider more general approach and I did my best. Decision depends on you guys. Thanks.