From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2134112325218363715==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH 1/2] mm: disable LRU pagevec during the migration temporarily Date: Wed, 03 Mar 2021 23:11:48 +0800 Message-ID: <202103032333.bv4y27Ol-lkp@intel.com> In-Reply-To: <20210302210949.2440120-1-minchan@kernel.org> List-Id: --===============2134112325218363715== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Minchan, I love your patch! Yet something to improve: [auto build test ERROR on block/for-next] [also build test ERROR on linux/master linus/master v5.12-rc1 next-20210303] [cannot apply to hnaz-linux-mm/master] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Minchan-Kim/mm-disable-LRU= -pagevec-during-the-migration-temporarily/20210303-191809 base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.g= it for-next config: nios2-randconfig-r032-20210303 (attached as .config) compiler: nios2-linux-gcc (GCC) 9.3.0 reproduce (this is a W=3D1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/= make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/6e669beb75caae92c613a0127= 34b1a2dc9485524 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Minchan-Kim/mm-disable-LRU-pagevec= -during-the-migration-temporarily/20210303-191809 git checkout 6e669beb75caae92c613a012734b1a2dc9485524 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=3D$HOME/0day COMPILER=3Dgcc-9.3.0 make.cross = ARCH=3Dnios2 = If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): mm/swap.c:59:6: warning: no previous prototype for 'lru_cache_disabled' = [-Wmissing-prototypes] 59 | bool lru_cache_disabled(void) | ^~~~~~~~~~~~~~~~~~ >> mm/swap.c:871:6: error: conflicting types for 'lru_add_drain_all' 871 | void lru_add_drain_all(void) | ^~~~~~~~~~~~~~~~~ In file included from mm/swap.c:20: include/linux/swap.h:347:13: note: previous declaration of 'lru_add_drai= n_all' was here 347 | extern void lru_add_drain_all(bool force_all_cpus); | ^~~~~~~~~~~~~~~~~ Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for SERIAL_CORE_CONSOLE Depends on TTY && HAS_IOMEM Selected by - EARLY_PRINTK vim +/lru_add_drain_all +871 mm/swap.c 053837fce7aa79 Nick Piggin 2006-01-18 768 = 9852a7212324fd Michal Hocko 2018-01-31 769 /* 9852a7212324fd Michal Hocko 2018-01-31 770 * Doesn't need any c= pu hotplug locking because we do rely on per-cpu 9852a7212324fd Michal Hocko 2018-01-31 771 * kworkers being shu= t down before our page_alloc_cpu_dead callback is 9852a7212324fd Michal Hocko 2018-01-31 772 * executed on the of= flined cpu. 9852a7212324fd Michal Hocko 2018-01-31 773 * Calling this funct= ion with cpu hotplug locks held can actually lead 9852a7212324fd Michal Hocko 2018-01-31 774 * to obscure indirec= t dependencies via WQ context. 9852a7212324fd Michal Hocko 2018-01-31 775 */ 6e669beb75caae Minchan Kim 2021-03-02 776 void lru_add_drain_al= l(bool force_all_cpus) 053837fce7aa79 Nick Piggin 2006-01-18 777 { 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 778 /* 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 779 * lru_drain_gen - G= lobal pages generation number 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 780 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 781 * (A) Definition: g= lobal lru_drain_gen =3D x implies that all generations 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 782 * 0 < n <=3D x = are already *scheduled* for draining. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 783 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 784 * This is an optimi= zation for the highly-contended use case where a 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 785 * user space worklo= ad keeps constantly generating a flow of pages for 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 786 * each CPU. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 787 */ 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 788 static unsigned int = lru_drain_gen; 5fbc461636c32e Chris Metcalf 2013-09-12 789 static struct cpumas= k has_work; 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 790 static DEFINE_MUTEX(= lock); 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 791 unsigned cpu, this_g= en; 5fbc461636c32e Chris Metcalf 2013-09-12 792 = ce612879ddc78e Michal Hocko 2017-04-07 793 /* ce612879ddc78e Michal Hocko 2017-04-07 794 * Make sure nobody = triggers this path before mm_percpu_wq is fully ce612879ddc78e Michal Hocko 2017-04-07 795 * initialized. ce612879ddc78e Michal Hocko 2017-04-07 796 */ ce612879ddc78e Michal Hocko 2017-04-07 797 if (WARN_ON(!mm_perc= pu_wq)) ce612879ddc78e Michal Hocko 2017-04-07 798 return; ce612879ddc78e Michal Hocko 2017-04-07 799 = 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 800 /* 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 801 * Guarantee pagevec= counter stores visible by this CPU are visible to 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 802 * other CPUs before= loading the current drain generation. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 803 */ 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 804 smp_mb(); 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 805 = 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 806 /* 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 807 * (B) Locally cache= global LRU draining generation number 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 808 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 809 * The read barrier = ensures that the counter is loaded before the mutex 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 810 * is taken. It pair= s with smp_mb() inside the mutex critical section 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 811 * at (D). 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 812 */ 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 813 this_gen =3D smp_loa= d_acquire(&lru_drain_gen); eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 814 = 5fbc461636c32e Chris Metcalf 2013-09-12 815 mutex_lock(&lock); eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 816 = eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 817 /* 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 818 * (C) Exit the drai= ning operation if a newer generation, from another 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 819 * lru_add_drain_all= (), was already scheduled for draining. Check (A). eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 820 */ 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 821 if (unlikely(this_ge= n !=3D lru_drain_gen)) eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 822 goto done; eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 823 = 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 824 /* 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 825 * (D) Increment glo= bal generation number 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 826 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 827 * Pairs with smp_lo= ad_acquire() at (B), outside of the critical 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 828 * section. Use a fu= ll memory barrier to guarantee that the new global 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 829 * drain generation = number is stored before loading pagevec counters. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 830 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 831 * This pairing must= be done here, before the for_each_online_cpu loop 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 832 * below which drain= s the page vectors. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 833 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 834 * Let x, y, and z r= epresent some system CPU numbers, where x < y < z. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 835 * Assume CPU #z is = is in the middle of the for_each_online_cpu loop 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 836 * below and has alr= eady reached CPU #y's per-cpu data. CPU #x comes 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 837 * along, adds some = pages to its per-cpu vectors, then calls 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 838 * lru_add_drain_all= (). 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 839 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 840 * If the paired bar= rier is done at any later step, e.g. after the 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 841 * loop, CPU #x will= just exit@(C) and miss flushing out all of its 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 842 * added pages. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 843 */ 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 844 WRITE_ONCE(lru_drain= _gen, lru_drain_gen + 1); 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 845 smp_mb(); eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 846 = 5fbc461636c32e Chris Metcalf 2013-09-12 847 cpumask_clear(&has_w= ork); 5fbc461636c32e Chris Metcalf 2013-09-12 848 for_each_online_cpu(= cpu) { 5fbc461636c32e Chris Metcalf 2013-09-12 849 struct work_struct = *work =3D &per_cpu(lru_add_drain_work, cpu); 5fbc461636c32e Chris Metcalf 2013-09-12 850 = 6e669beb75caae Minchan Kim 2021-03-02 851 if (force_all_cpus = || 6e669beb75caae Minchan Kim 2021-03-02 852 pagevec_count(&= per_cpu(lru_pvecs.lru_add, cpu)) || 7e0cc01ea181c6 Qian Cai 2020-08-14 853 data_race(pagev= ec_count(&per_cpu(lru_rotate.pvec, cpu))) || b01b2141999936 Ingo Molnar 2020-05-27 854 pagevec_count(&= per_cpu(lru_pvecs.lru_deactivate_file, cpu)) || b01b2141999936 Ingo Molnar 2020-05-27 855 pagevec_count(&= per_cpu(lru_pvecs.lru_deactivate, cpu)) || b01b2141999936 Ingo Molnar 2020-05-27 856 pagevec_count(&= per_cpu(lru_pvecs.lru_lazyfree, cpu)) || 5fbc461636c32e Chris Metcalf 2013-09-12 857 need_activate_p= age_drain(cpu)) { 5fbc461636c32e Chris Metcalf 2013-09-12 858 INIT_WORK(work, lr= u_add_drain_per_cpu); ce612879ddc78e Michal Hocko 2017-04-07 859 queue_work_on(cpu,= mm_percpu_wq, work); 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 860 __cpumask_set_cpu(= cpu, &has_work); 5fbc461636c32e Chris Metcalf 2013-09-12 861 } 5fbc461636c32e Chris Metcalf 2013-09-12 862 } 5fbc461636c32e Chris Metcalf 2013-09-12 863 = 5fbc461636c32e Chris Metcalf 2013-09-12 864 for_each_cpu(cpu, &h= as_work) 5fbc461636c32e Chris Metcalf 2013-09-12 865 flush_work(&per_cpu= (lru_add_drain_work, cpu)); 5fbc461636c32e Chris Metcalf 2013-09-12 866 = eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 867 done: 5fbc461636c32e Chris Metcalf 2013-09-12 868 mutex_unlock(&lock); 053837fce7aa79 Nick Piggin 2006-01-18 869 } 6ea183d60c4695 Michal Hocko 2019-02-20 870 #else 6ea183d60c4695 Michal Hocko 2019-02-20 @871 void lru_add_drain_al= l(void) 6ea183d60c4695 Michal Hocko 2019-02-20 872 { 6ea183d60c4695 Michal Hocko 2019-02-20 873 lru_add_drain(); 6ea183d60c4695 Michal Hocko 2019-02-20 874 } 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 875 #endif /* CONFIG_SMP = */ 053837fce7aa79 Nick Piggin 2006-01-18 876 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --===============2134112325218363715== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 q+IwejPIbq6/4VSRYjt6AQA= --===============2134112325218363715==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 63BDDC433E6 for ; Wed, 3 Mar 2021 15:13:05 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 8759364E89 for ; Wed, 3 Mar 2021 15:13:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8759364E89 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id DF1F68D0171; Wed, 3 Mar 2021 10:13:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DA45F8D0157; Wed, 3 Mar 2021 10:13:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BCDBC8D0171; Wed, 3 Mar 2021 10:13:03 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0060.hostedemail.com [216.40.44.60]) by kanga.kvack.org (Postfix) with ESMTP id 969F08D0157 for ; Wed, 3 Mar 2021 10:13:03 -0500 (EST) Received: from smtpin18.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 4E6801802559C for ; Wed, 3 Mar 2021 15:13:03 +0000 (UTC) X-FDA: 77878905846.18.C179C1B Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by imf21.hostedemail.com (Postfix) with ESMTP id 1DF7DE005F05 for ; Wed, 3 Mar 2021 15:12:58 +0000 (UTC) IronPort-SDR: WRb/RLkA2uQOe/8SEU0d5nFg/5kJc1Lp4ySE7f2vjRQ+wMeHBvFqWUYVPvUel6wzyRNbCP6qlQ q0cklJO00+iw== X-IronPort-AV: E=McAfee;i="6000,8403,9912"; a="206902034" X-IronPort-AV: E=Sophos;i="5.81,220,1610438400"; d="gz'50?scan'50,208,50";a="206902034" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Mar 2021 07:12:51 -0800 IronPort-SDR: d4WzFk6DZbg6kM1M8f47fvWlDaZGiIAfzx3FJAkOEOZ69VtV8cHCbbB0ea2MIb6gmvyCHZSd7o qDoes73MRl4g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,220,1610438400"; d="gz'50?scan'50,208,50";a="435241369" Received: from lkp-server02.sh.intel.com (HELO 2482ff9f8ac0) ([10.239.97.151]) by FMSMGA003.fm.intel.com with ESMTP; 03 Mar 2021 07:12:48 -0800 Received: from kbuild by 2482ff9f8ac0 with local (Exim 4.92) (envelope-from ) id 1lHTB9-0001ZA-DD; Wed, 03 Mar 2021 15:12:47 +0000 Date: Wed, 3 Mar 2021 23:11:48 +0800 From: kernel test robot To: Minchan Kim , Andrew Morton Cc: kbuild-all@lists.01.org, Linux Memory Management List , LKML , joaodias@google.com, surenb@google.com, cgoldswo@codeaurora.org, willy@infradead.org, mhocko@suse.com, david@redhat.com, vbabka@suse.cz Subject: Re: [PATCH 1/2] mm: disable LRU pagevec during the migration temporarily Message-ID: <202103032333.bv4y27Ol-lkp@intel.com> References: <20210302210949.2440120-1-minchan@kernel.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="AqsLC8rIMeq19msA" Content-Disposition: inline In-Reply-To: <20210302210949.2440120-1-minchan@kernel.org> User-Agent: Mutt/1.10.1 (2018-07-13) X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 1DF7DE005F05 X-Stat-Signature: 93ur9anbskjqs5ndhrqx6cj7xjbhefby Received-SPF: none (intel.com>: No applicable sender policy available) receiver=imf21; identity=mailfrom; envelope-from=""; helo=mga01.intel.com; client-ip=192.55.52.88 X-HE-DKIM-Result: none/none X-HE-Tag: 1614784378-531348 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: --AqsLC8rIMeq19msA Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Minchan, I love your patch! Yet something to improve: [auto build test ERROR on block/for-next] [also build test ERROR on linux/master linus/master v5.12-rc1 next-20210303] [cannot apply to hnaz-linux-mm/master] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Minchan-Kim/mm-disable-LRU-pagevec-during-the-migration-temporarily/20210303-191809 base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next config: nios2-randconfig-r032-20210303 (attached as .config) compiler: nios2-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/6e669beb75caae92c613a012734b1a2dc9485524 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Minchan-Kim/mm-disable-LRU-pagevec-during-the-migration-temporarily/20210303-191809 git checkout 6e669beb75caae92c613a012734b1a2dc9485524 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=nios2 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): mm/swap.c:59:6: warning: no previous prototype for 'lru_cache_disabled' [-Wmissing-prototypes] 59 | bool lru_cache_disabled(void) | ^~~~~~~~~~~~~~~~~~ >> mm/swap.c:871:6: error: conflicting types for 'lru_add_drain_all' 871 | void lru_add_drain_all(void) | ^~~~~~~~~~~~~~~~~ In file included from mm/swap.c:20: include/linux/swap.h:347:13: note: previous declaration of 'lru_add_drain_all' was here 347 | extern void lru_add_drain_all(bool force_all_cpus); | ^~~~~~~~~~~~~~~~~ Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for SERIAL_CORE_CONSOLE Depends on TTY && HAS_IOMEM Selected by - EARLY_PRINTK vim +/lru_add_drain_all +871 mm/swap.c 053837fce7aa79 Nick Piggin 2006-01-18 768 9852a7212324fd Michal Hocko 2018-01-31 769 /* 9852a7212324fd Michal Hocko 2018-01-31 770 * Doesn't need any cpu hotplug locking because we do rely on per-cpu 9852a7212324fd Michal Hocko 2018-01-31 771 * kworkers being shut down before our page_alloc_cpu_dead callback is 9852a7212324fd Michal Hocko 2018-01-31 772 * executed on the offlined cpu. 9852a7212324fd Michal Hocko 2018-01-31 773 * Calling this function with cpu hotplug locks held can actually lead 9852a7212324fd Michal Hocko 2018-01-31 774 * to obscure indirect dependencies via WQ context. 9852a7212324fd Michal Hocko 2018-01-31 775 */ 6e669beb75caae Minchan Kim 2021-03-02 776 void lru_add_drain_all(bool force_all_cpus) 053837fce7aa79 Nick Piggin 2006-01-18 777 { 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 778 /* 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 779 * lru_drain_gen - Global pages generation number 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 780 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 781 * (A) Definition: global lru_drain_gen = x implies that all generations 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 782 * 0 < n <= x are already *scheduled* for draining. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 783 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 784 * This is an optimization for the highly-contended use case where a 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 785 * user space workload keeps constantly generating a flow of pages for 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 786 * each CPU. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 787 */ 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 788 static unsigned int lru_drain_gen; 5fbc461636c32e Chris Metcalf 2013-09-12 789 static struct cpumask has_work; 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 790 static DEFINE_MUTEX(lock); 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 791 unsigned cpu, this_gen; 5fbc461636c32e Chris Metcalf 2013-09-12 792 ce612879ddc78e Michal Hocko 2017-04-07 793 /* ce612879ddc78e Michal Hocko 2017-04-07 794 * Make sure nobody triggers this path before mm_percpu_wq is fully ce612879ddc78e Michal Hocko 2017-04-07 795 * initialized. ce612879ddc78e Michal Hocko 2017-04-07 796 */ ce612879ddc78e Michal Hocko 2017-04-07 797 if (WARN_ON(!mm_percpu_wq)) ce612879ddc78e Michal Hocko 2017-04-07 798 return; ce612879ddc78e Michal Hocko 2017-04-07 799 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 800 /* 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 801 * Guarantee pagevec counter stores visible by this CPU are visible to 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 802 * other CPUs before loading the current drain generation. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 803 */ 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 804 smp_mb(); 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 805 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 806 /* 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 807 * (B) Locally cache global LRU draining generation number 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 808 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 809 * The read barrier ensures that the counter is loaded before the mutex 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 810 * is taken. It pairs with smp_mb() inside the mutex critical section 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 811 * at (D). 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 812 */ 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 813 this_gen = smp_load_acquire(&lru_drain_gen); eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 814 5fbc461636c32e Chris Metcalf 2013-09-12 815 mutex_lock(&lock); eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 816 eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 817 /* 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 818 * (C) Exit the draining operation if a newer generation, from another 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 819 * lru_add_drain_all(), was already scheduled for draining. Check (A). eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 820 */ 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 821 if (unlikely(this_gen != lru_drain_gen)) eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 822 goto done; eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 823 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 824 /* 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 825 * (D) Increment global generation number 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 826 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 827 * Pairs with smp_load_acquire() at (B), outside of the critical 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 828 * section. Use a full memory barrier to guarantee that the new global 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 829 * drain generation number is stored before loading pagevec counters. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 830 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 831 * This pairing must be done here, before the for_each_online_cpu loop 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 832 * below which drains the page vectors. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 833 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 834 * Let x, y, and z represent some system CPU numbers, where x < y < z. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 835 * Assume CPU #z is is in the middle of the for_each_online_cpu loop 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 836 * below and has already reached CPU #y's per-cpu data. CPU #x comes 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 837 * along, adds some pages to its per-cpu vectors, then calls 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 838 * lru_add_drain_all(). 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 839 * 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 840 * If the paired barrier is done at any later step, e.g. after the 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 841 * loop, CPU #x will just exit at (C) and miss flushing out all of its 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 842 * added pages. 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 843 */ 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 844 WRITE_ONCE(lru_drain_gen, lru_drain_gen + 1); 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 845 smp_mb(); eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 846 5fbc461636c32e Chris Metcalf 2013-09-12 847 cpumask_clear(&has_work); 5fbc461636c32e Chris Metcalf 2013-09-12 848 for_each_online_cpu(cpu) { 5fbc461636c32e Chris Metcalf 2013-09-12 849 struct work_struct *work = &per_cpu(lru_add_drain_work, cpu); 5fbc461636c32e Chris Metcalf 2013-09-12 850 6e669beb75caae Minchan Kim 2021-03-02 851 if (force_all_cpus || 6e669beb75caae Minchan Kim 2021-03-02 852 pagevec_count(&per_cpu(lru_pvecs.lru_add, cpu)) || 7e0cc01ea181c6 Qian Cai 2020-08-14 853 data_race(pagevec_count(&per_cpu(lru_rotate.pvec, cpu))) || b01b2141999936 Ingo Molnar 2020-05-27 854 pagevec_count(&per_cpu(lru_pvecs.lru_deactivate_file, cpu)) || b01b2141999936 Ingo Molnar 2020-05-27 855 pagevec_count(&per_cpu(lru_pvecs.lru_deactivate, cpu)) || b01b2141999936 Ingo Molnar 2020-05-27 856 pagevec_count(&per_cpu(lru_pvecs.lru_lazyfree, cpu)) || 5fbc461636c32e Chris Metcalf 2013-09-12 857 need_activate_page_drain(cpu)) { 5fbc461636c32e Chris Metcalf 2013-09-12 858 INIT_WORK(work, lru_add_drain_per_cpu); ce612879ddc78e Michal Hocko 2017-04-07 859 queue_work_on(cpu, mm_percpu_wq, work); 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 860 __cpumask_set_cpu(cpu, &has_work); 5fbc461636c32e Chris Metcalf 2013-09-12 861 } 5fbc461636c32e Chris Metcalf 2013-09-12 862 } 5fbc461636c32e Chris Metcalf 2013-09-12 863 5fbc461636c32e Chris Metcalf 2013-09-12 864 for_each_cpu(cpu, &has_work) 5fbc461636c32e Chris Metcalf 2013-09-12 865 flush_work(&per_cpu(lru_add_drain_work, cpu)); 5fbc461636c32e Chris Metcalf 2013-09-12 866 eef1a429f234f8 Konstantin Khlebnikov 2019-11-30 867 done: 5fbc461636c32e Chris Metcalf 2013-09-12 868 mutex_unlock(&lock); 053837fce7aa79 Nick Piggin 2006-01-18 869 } 6ea183d60c4695 Michal Hocko 2019-02-20 870 #else 6ea183d60c4695 Michal Hocko 2019-02-20 @871 void lru_add_drain_all(void) 6ea183d60c4695 Michal Hocko 2019-02-20 872 { 6ea183d60c4695 Michal Hocko 2019-02-20 873 lru_add_drain(); 6ea183d60c4695 Michal Hocko 2019-02-20 874 } 6446a5131e24a8 Ahmed S. Darwish 2020-08-27 875 #endif /* CONFIG_SMP */ 053837fce7aa79 Nick Piggin 2006-01-18 876 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --AqsLC8rIMeq19msA Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 6TsAUtsPq+IwejPIbq6/4VSRYjt6AQA= --AqsLC8rIMeq19msA--