Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp1934877rwl; Thu, 6 Apr 2023 03:36:26 -0700 (PDT) X-Google-Smtp-Source: AKy350Z0qFm2vbunbSgojx7l1HystL2fuJMoIrkAlQs4ZcZ+39BfgYh5Vjie0DNl0QJW9trunyHX X-Received: by 2002:aa7:c2c6:0:b0:4fd:5a28:2eff with SMTP id m6-20020aa7c2c6000000b004fd5a282effmr4268061edp.26.1680777386459; Thu, 06 Apr 2023 03:36:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680777386; cv=none; d=google.com; s=arc-20160816; b=FVdR0Yh/GOm03/kMZ9CuDV9aUyPQLcN1x6AGKqUH6ScxZNav8X9NN+md/h6Vq9rwT/ SVarYrdZvuSdBlOlp2Ym6TtabHGsw0Rwe3fYnZsyJqtVSf+bTzasF1ARvNBO9Ik+r2gq EBhKq+way15X5PoAWv6ygoKcTsLSca1CQN8HKErvWQDvboGJdxvC14YR5GBZ1XKrONMo nNyQgI0cfkAcLYcM3e8eCZAkqsnI66OHqV2Vsd/VV82NKDUqlK5qonxKSDwnwdiXHSuF K3gmuyiwoYwbs4jp5qXSOSVFU9dpgj7rr0ZIF9xkcl6YdEWIlQLpA94txz1VQeOXPH2v 2hpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature :dkim-signature; bh=KmZpdSSRqedV0L7p5sCVaHyO+NhMzOfLvKiiIVQfLvg=; b=00uJqXr+f2s+cTKl6nK/guwfuxVb3PVPeO4FJ9lAQSduCvD7vcN3yGd2EGJXgM1t6E OxnFwoLMYGsD7Ckkg2CPceI1LPDEUIRj3A+wynJjkFNdGifuP5cMMAyJTZWgo+RMY5K5 d5x0KHqiGfAzQ7aJ6zN8OsZalnJFu8OnvH6PO+36sgEjXmp11k5imTT8Rzsvdz/Z5MzF uubISo5eOVj6d3ZsvRpUgb44dEvS2wCe2B1R4jY2vtzv4L4Oe58xWabMG5JQCwWsXFTc iG9dfG7HB5biP2RoBhJDqzRlc9L+YDpupXJOqCWj9GFdZu2SX2dv1sjici0CyLMsOOqp QaLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=p8twOzyM; dkim=neutral (no key) header.i=@suse.de header.b=fvEb94Uk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d15-20020a056402516f00b005024a937aebsi1014934ede.34.2023.04.06.03.36.02; Thu, 06 Apr 2023 03:36:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.de header.s=susede2_rsa header.b=p8twOzyM; dkim=neutral (no key) header.i=@suse.de header.b=fvEb94Uk; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=suse.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237020AbjDFKX7 (ORCPT + 99 others); Thu, 6 Apr 2023 06:23:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236968AbjDFKXl (ORCPT ); Thu, 6 Apr 2023 06:23:41 -0400 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93DFBE6A for ; Thu, 6 Apr 2023 03:22:57 -0700 (PDT) Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out2.suse.de (Postfix) with ESMTP id E13931FF44; Thu, 6 Apr 2023 10:22:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1680776562; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KmZpdSSRqedV0L7p5sCVaHyO+NhMzOfLvKiiIVQfLvg=; b=p8twOzyMqekzYVHbnSfUCGsRvaWbAlJVrUr4lF2JYoaz6PuMrR7t8MCEvG4DT+mBuiXHzk GhkSOtOiTUENZe4KTkUFzIRIbqhgBmmLoq+aOXY9LTKelXrumvsGM3r/Y0QnpBFvcKwsgW lYccqJholuEk/e7jSCLUc05rNKGqOnY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1680776562; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=KmZpdSSRqedV0L7p5sCVaHyO+NhMzOfLvKiiIVQfLvg=; b=fvEb94UkWMbvJiMXj0MmBfL2BzXpKfqnksEu7MQ5Ex+xNNR/rRfIUKyFJSfrv73FxRd2qL JJnnxwJHTZGg2SAA== Received: from suse.de (unknown [10.163.43.106]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by relay2.suse.de (Postfix) with ESMTPS id 2F06C2C142; Thu, 6 Apr 2023 10:22:39 +0000 (UTC) Date: Thu, 6 Apr 2023 11:22:38 +0100 From: Mel Gorman To: Qi Zheng Cc: akpm@linux-foundation.org, willy@infradead.org, lstoakes@gmail.com, vbabka@suse.cz, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/2] mm: swap: fix performance regression on sparsetruncate-tiny Message-ID: <20230406102238.i7jhmjl3vggncog5@suse.de> References: <20230405161854.6931-1-zhengqi.arch@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <20230405161854.6931-1-zhengqi.arch@bytedance.com> X-Spam-Status: No, score=-2.5 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 06, 2023 at 12:18:53AM +0800, Qi Zheng wrote: > The ->percpu_pvec_drained was originally introduced by > commit d9ed0d08b6c6 ("mm: only drain per-cpu pagevecs once per > pagevec usage") to drain per-cpu pagevecs only once per pagevec > usage. But after converting the swap code to be more folio-based, > the commit c2bc16817aa0 ("mm/swap: add folio_batch_move_lru()") > breaks this logic, which would cause ->percpu_pvec_drained to be > reset to false, that means per-cpu pagevecs will be drained > multiple times per pagevec usage. > > In theory, there should be no functional changes when converting > code to be more folio-based. We should call folio_batch_reinit() > in folio_batch_move_lru() instead of folio_batch_init(). And to > verify that we still need ->percpu_pvec_drained, I ran > mmtests/sparsetruncate-tiny and got the following data: > > baseline with > baseline/ patch/ > Min Time 326.00 ( 0.00%) 328.00 ( -0.61%) > 1st-qrtle Time 334.00 ( 0.00%) 336.00 ( -0.60%) > 2nd-qrtle Time 338.00 ( 0.00%) 341.00 ( -0.89%) > 3rd-qrtle Time 343.00 ( 0.00%) 347.00 ( -1.17%) > Max-1 Time 326.00 ( 0.00%) 328.00 ( -0.61%) > Max-5 Time 327.00 ( 0.00%) 330.00 ( -0.92%) > Max-10 Time 328.00 ( 0.00%) 331.00 ( -0.91%) > Max-90 Time 350.00 ( 0.00%) 357.00 ( -2.00%) > Max-95 Time 395.00 ( 0.00%) 390.00 ( 1.27%) > Max-99 Time 508.00 ( 0.00%) 434.00 ( 14.57%) > Max Time 547.00 ( 0.00%) 476.00 ( 12.98%) > Amean Time 344.61 ( 0.00%) 345.56 * -0.28%* > Stddev Time 30.34 ( 0.00%) 19.51 ( 35.69%) > CoeffVar Time 8.81 ( 0.00%) 5.65 ( 35.87%) > BAmean-99 Time 342.38 ( 0.00%) 344.27 ( -0.55%) > BAmean-95 Time 338.58 ( 0.00%) 341.87 ( -0.97%) > BAmean-90 Time 336.89 ( 0.00%) 340.26 ( -1.00%) > BAmean-75 Time 335.18 ( 0.00%) 338.40 ( -0.96%) > BAmean-50 Time 332.54 ( 0.00%) 335.42 ( -0.87%) > BAmean-25 Time 329.30 ( 0.00%) 332.00 ( -0.82%) > > From the above it can be seen that we get similar data to when > ->percpu_pvec_drained was introduced, so we still need it. Let's > call folio_batch_reinit() in folio_batch_move_lru() to restore > the original logic. > > Fixes: c2bc16817aa0 ("mm/swap: add folio_batch_move_lru()") > Signed-off-by: Qi Zheng Well spotted, Acked-by: Mel Gorman -- Mel Gorman SUSE Labs