From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753321AbdCHNUl (ORCPT ); Wed, 8 Mar 2017 08:20:41 -0500 Received: from bombadil.infradead.org ([65.50.211.133]:35678 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752062AbdCHNUi (ORCPT ); Wed, 8 Mar 2017 08:20:38 -0500 Date: Wed, 8 Mar 2017 04:56:31 -0800 From: Matthew Wilcox To: "Huang, Ying" Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Hugh Dickins , Shaohua Li , Minchan Kim , Rik van Riel Subject: Re: [PATCH -mm -v6 1/9] mm, swap: Make swap cluster size same of THP size on x86_64 Message-ID: <20170308125631.GX16328@bombadil.infradead.org> References: <20170308072613.17634-1-ying.huang@intel.com> <20170308072613.17634-2-ying.huang@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170308072613.17634-2-ying.huang@intel.com> User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 08, 2017 at 03:26:05PM +0800, Huang, Ying wrote: > In this patch, the size of the swap cluster is changed to that of the > THP (Transparent Huge Page) on x86_64 architecture (512). This is for > the THP swap support on x86_64. Where one swap cluster will be used to > hold the contents of each THP swapped out. And some information of the > swapped out THP (such as compound map count) will be recorded in the > swap_cluster_info data structure. > > For other architectures which want THP swap support, > ARCH_USES_THP_SWAP_CLUSTER need to be selected in the Kconfig file for > the architecture. > > In effect, this will enlarge swap cluster size by 2 times on x86_64. > Which may make it harder to find a free cluster when the swap space > becomes fragmented. So that, this may reduce the continuous swap space > allocation and sequential write in theory. The performance test in 0day > shows no regressions caused by this. Well ... if there are no regressions found, why not change it unconditionally? The value '256' seems relatively arbitrary (I bet it was tuned by some doofus with a 486, 8MB RAM and ST506 hard drive ... it certainly hasn't changed since git started in 2005) Might be worth checking with the PowerPC people to see if their larger pages causes this smaller patch to perform badly: diff --git a/mm/swapfile.c b/mm/swapfile.c --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -199,7 +199,7 @@ static void discard_swap_cluster(struct swap_info_struct *si, } } -#define SWAPFILE_CLUSTER 256 +#define SWAPFILE_CLUSTER HPAGE_PMD_NR #define LATENCY_LIMIT 256 static inline void cluster_set_flag(struct swap_cluster_info *info,