Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4655034pxj; Tue, 25 May 2021 13:06:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzqk1gTgec6IohdxHMwS5TMEBwZaCzxZWv3aQbuUghbsmfZ/0kIRoM0LV0E3+GuJTPbuisy X-Received: by 2002:a05:6402:2298:: with SMTP id cw24mr33781373edb.156.1621973176023; Tue, 25 May 2021 13:06:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621973176; cv=none; d=google.com; s=arc-20160816; b=S2Q70xqGZVGEok8icDlUCpzbn2v2P//rfMu5p2tyDIDvrBnFUMQ/FQvN0y3iuajQXF PhsMcLTpgOEgmYYg1bqUq6Q3ggK/4GVXQ6KMEJDq16b+Zu1uA0PGpnVyjRKy5k5L4fht xNpbOQkVKgTOCzDshtKPcrmvIm7czdZB6ChmgyCim/mw1bcWjaAtoPjgbHbRNJeukWNd hBbntlBF77k3PckIk5nBgs0dTks3LQcrYvpTOJvBo6gphFU/b2Kj5/Lfr0XWtFarMnGl jKVrD/yIeCXryodw2Gah+ZzdhB1VMyDrd+DZ0Sar1YI4E0Z5YidNHcnYiM/OWCJKS53k RtGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:message-id:references:in-reply-to :subject:cc:to:from:date:content-transfer-encoding:mime-version :sender:dkim-signature; bh=TMTyQA9L6fRkHzXjXTqYEezRMznjhQBUZOUustLZpDM=; b=Q7WA2jN27RJ0vGW7mn+GgCq8xC85nZl9kceGpUDAz/0L0hyCzmWXUKIJ1X4OhALUr9 poXR3beqVrTpb9TqydXvloHvjc3oObgEYR3IY2p4LFYLlrBMdYvVCxoM9uQM2GKp0S8M ultQyoOn6y3CyjbgIPP8ArdU5q6zqp9rH4cblAueCgwLCFnedKQg1BOPAnLK7g8bBiW/ AhhrzIzL5+2jdVUCB0IVO7IkHDLonZhf51FEVC8LgQfc9kRs2FHwUA5EUxO5xTBLKq/h ORwTS9utbLqQ/FHH0Y3pheyjzY0KXQZFLWOBqYa/STQB3Zc8h2FExd+R9D1mo281eKlp II/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=Pvd06Ax6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w16si16946171edc.238.2021.05.25.13.05.52; Tue, 25 May 2021 13:06:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mg.codeaurora.org header.s=smtp header.b=Pvd06Ax6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232895AbhEYQzo (ORCPT + 99 others); Tue, 25 May 2021 12:55:44 -0400 Received: from m43-7.mailgun.net ([69.72.43.7]:33078 "EHLO m43-7.mailgun.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232550AbhEYQzn (ORCPT ); Tue, 25 May 2021 12:55:43 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1621961653; h=Message-ID: References: In-Reply-To: Subject: Cc: To: From: Date: Content-Transfer-Encoding: Content-Type: MIME-Version: Sender; bh=TMTyQA9L6fRkHzXjXTqYEezRMznjhQBUZOUustLZpDM=; b=Pvd06Ax6lK1yBWfkmHgLSsaQ5K0C0aQHUK0AVaZ9u165uLXCtBFsEwZpcy0PsLrK1Y5Hz2rw 7xmM48Hm1BXk3jxVF98SCAhKEaARDLHO4BXKsvQLPPxHzN7F7bhqBAAVAxcmz53DQVh2MV1F Ncel6W8+mPg38LmNeUdE+9UKluA= X-Mailgun-Sending-Ip: 69.72.43.7 X-Mailgun-Sid: WyI0MWYwYSIsICJsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n07.prod.us-west-2.postgun.com with SMTP id 60ad2b9fc229adfeff538412 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Tue, 25 May 2021 16:53:51 GMT Sender: cgoldswo=codeaurora.org@mg.codeaurora.org Received: by smtp.codeaurora.org (Postfix, from userid 1001) id BE322C4338A; Tue, 25 May 2021 16:53:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=ALL_TRUSTED,BAYES_00, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: cgoldswo) by smtp.codeaurora.org (Postfix) with ESMTPSA id 535B3C433D3; Tue, 25 May 2021 16:53:49 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Tue, 25 May 2021 09:53:49 -0700 From: Chris Goldsworthy To: Minchan Kim Cc: kernel test robot , Linus Torvalds , Laura Abbott , David Hildenbrand , John Dias , Matthew Wilcox , Michal Hocko , Suren Baghdasaryan , Vlastimil Babka , Andrew Morton , LKML , lkp@lists.01.org, lkp@intel.com, ying.huang@intel.com, feng.tang@intel.com, zhengjun.xing@intel.com, Minchan Kim Subject: Re: [mm] 8cc621d2f4: fio.write_iops -21.8% regression In-Reply-To: References: <20210520083144.GD14190@xsang-OptiPlex-9020> <45f761de51d514f77cc48214846c5f8f@codeaurora.org> Message-ID: <48d281469120cbed8aa58cd5f108ed47@codeaurora.org> X-Sender: cgoldswo@codeaurora.org User-Agent: Roundcube Webmail/1.3.9 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2021-05-25 08:16, Minchan Kim wrote: > On Mon, May 24, 2021 at 10:37:49AM -0700, Chris Goldsworthy wrote: >> Hi Minchan, >> >> This looks good to me, I just have some minor feedback. >> >> Thanks, > > Hi Chris, > > Thanks for the review. Please see below. > >> >> Chris. >> >> On 2021-05-20 11:36, Minchan Kim wrote: >> > On Thu, May 20, 2021 at 04:31:44PM +0800, kernel test robot wrote: >> > > >> > > >> > > Greeting, >> > > >> > > FYI, we noticed a -21.8% regression of fio.write_iops due to commit: >> > > >> > > >> > > commit: 8cc621d2f45ddd3dc664024a647ee7adf48d79a5 ("mm: fs: >> > > invalidate BH LRU during page migration") >> > > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master >> > > >> > > >> > > in testcase: fio-basic >> > > on test machine: 96 threads 2 sockets Intel(R) Xeon(R) Gold 6252 CPU >> > > @ 2.10GHz with 256G memory >> > > with following parameters: >> > > >> > > disk: 2pmem >> > > fs: ext4 >> > > runtime: 200s >> > > nr_task: 50% >> > > time_based: tb >> > > rw: randwrite >> > > bs: 4k >> > > ioengine: libaio >> > > test_size: 200G >> > > cpufreq_governor: performance >> > > ucode: 0x5003006 >> > > >> > > test-description: Fio is a tool that will spawn a number of threads >> > > or processes doing a particular type of I/O action as specified by >> > > the user. >> > > test-url: https://github.com/axboe/fio >> > > >> > > >> > > >> > > If you fix the issue, kindly add following tag >> > > Reported-by: kernel test robot >> > > >> > > >> > > Details are as below: >> > > --------------------------------------------------------------------------------------------------> >> > > >> > > >> > > To reproduce: >> > > >> > > git clone https://github.com/intel/lkp-tests.git >> > > cd lkp-tests >> > > bin/lkp install job.yaml # job file is >> > > attached in this email >> > > bin/lkp split-job --compatible job.yaml # generate the yaml >> > > file for lkp run >> > > bin/lkp run generated-yaml-file >> > >> > Hi, >> > >> > I tried to insall the lkp-test in my machine by following above guide >> > but failed >> > due to package problems(I guess it's my problem since I use something >> > particular >> > environement). However, I guess it comes from increased miss ratio of >> > bh_lrus >> > since the patch caused more frequent invalidation of the bh_lrus calls >> > compared >> > to old. For example, lru_add_drain could be called from several hot >> > places(e.g., >> > unmap and pagevec_release from several path) and it could keeps >> > invalidating >> > bh_lrus. >> > >> > IMO, we should move the overhead from such hot path to cold one. How >> > about this? >> > >> > From ebf4ede1cf32fb14d85f0015a3693cb8e1b8dbfe Mon Sep 17 00:00:00 2001 >> > From: Minchan Kim >> > Date: Thu, 20 May 2021 11:17:56 -0700 >> > Subject: [PATCH] invalidate bh_lrus only at lru_add_drain_all >> > >> > Not-Yet-Signed-off-by: Minchan Kim >> > --- >> > mm/swap.c | 15 +++++++++++++-- >> > 1 file changed, 13 insertions(+), 2 deletions(-) >> > >> > diff --git a/mm/swap.c b/mm/swap.c >> > index dfb48cf9c2c9..d6168449e28c 100644 >> > --- a/mm/swap.c >> > +++ b/mm/swap.c >> > @@ -642,7 +642,6 @@ void lru_add_drain_cpu(int cpu) >> > pagevec_lru_move_fn(pvec, lru_lazyfree_fn); >> > >> > activate_page_drain(cpu); >> > - invalidate_bh_lrus_cpu(cpu); >> > } >> > >> > /** >> > @@ -725,6 +724,17 @@ void lru_add_drain(void) >> > local_unlock(&lru_pvecs.lock); >> > } >> > >> > +void lru_and_bh_lrus_drain(void) >> > +{ >> > + int cpu; >> > + >> > + local_lock(&lru_pvecs.lock); >> > + cpu = smp_processor_id(); >> > + lru_add_drain_cpu(cpu); >> > + local_unlock(&lru_pvecs.lock); >> > + invalidate_bh_lrus_cpu(cpu); >> > +} >> > + >> >> Nit: drop int cpu? > > Do you mean to suggest using smp_processor_id at both places > instead of local varaible? Since the invalidate_bh_lrus_cpu > is called out of the lru_pvecs.lock, I wanted to express > the draining happens at the same CPU via storing the CPU. Ah, got it. >> >> > void lru_add_drain_cpu_zone(struct zone *zone) >> > { >> > local_lock(&lru_pvecs.lock); >> > @@ -739,7 +749,7 @@ static DEFINE_PER_CPU(struct work_struct, >> > lru_add_drain_work); >> > >> > static void lru_add_drain_per_cpu(struct work_struct *dummy) >> > { >> > - lru_add_drain(); >> > + lru_and_bh_lrus_drain(); >> > } >> > >> > /* >> > @@ -881,6 +891,7 @@ void lru_cache_disable(void) >> > __lru_add_drain_all(true); >> > #else >> > lru_add_drain(); >> > + invalidate_bh_lrus_cpu(smp_processor_id()); >> > #endif >> > } >> >> Can't we replace the call to lru_add_drain() and >> invalidate_bh_lrus_cpu(smp_processor_id()) with a single call to >> lru_and_bh_lrus_drain()? > > Good idea. > > Thanks! -- The Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project