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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D948CC433F5 for ; Thu, 25 Nov 2021 03:14:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5D9E56B0075; Wed, 24 Nov 2021 22:14:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 589796B007B; Wed, 24 Nov 2021 22:14:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 450C96B007D; Wed, 24 Nov 2021 22:14:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0116.hostedemail.com [216.40.44.116]) by kanga.kvack.org (Postfix) with ESMTP id 376CF6B0075 for ; Wed, 24 Nov 2021 22:14:18 -0500 (EST) Received: from smtpin11.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id F007A8248076 for ; Thu, 25 Nov 2021 03:14:07 +0000 (UTC) X-FDA: 78845983692.11.5B6A066 Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) by imf17.hostedemail.com (Postfix) with ESMTP id 9F584F0001F3 for ; Thu, 25 Nov 2021 03:14:07 +0000 (UTC) Received: by mail-ed1-f48.google.com with SMTP id x6so19210834edr.5 for ; Wed, 24 Nov 2021 19:14:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=LUJ2xL+Px+DOun+h5cyap9d/dwV4T1osfNsX5aVR3pw=; b=nDcBW1cRvwI3INDB/78zeUB31/ODkKV5AQk+Mv9y1EzYqq4NByJ2IuLdxSnJvIVwPR PPYZJ5f1JTGOlao2bfW/eExJuS02Do+tl2cpuuBbw9gy6QL6HQj1NLFJ51enf9mhG5KN X5f8/n2GVyfST9jajOklGweUJG2VNBiPWjxZW47TPHj6mvwOlwceHiBAaTFp1vWa3xGq oI4Iwq/XBps2Q4wSsH6nfi6dsta5cktP1DweFQ2XPn329xrU0sR5CAEi1J4UQrrQ3q2i TOS6SHWMslVeZWSAf+qsnzpFZm2+/AJsoTqe43/Ryyta71lv7BjIFkHXJvdC/CBf/mpJ FbSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=LUJ2xL+Px+DOun+h5cyap9d/dwV4T1osfNsX5aVR3pw=; b=nD1JtO/Fgic1c6b19Ex5jqYnC9EqMIlCATSONlkuQq9g6sDmoB3/8Bt0Cw7bTZT+rE LGfYL1Ne/yImeVYMZzfuLo5ovq33zi0IpcNJId1dXwcVVLC74JclZcnMN+sf7NflBKpa PPJctuwr9rzIxVlQrOQsQedZ1n2peCuovW/PVXggatVWC1Yclq2J5GALt6KesjqcuMk6 IUqyc24oEjzpHHeoV0/EoxPK6EXPIDBqVi78lawGLYWc38+VhM/y8PyuG8nUKdWHsigL jJnRY9ND51w7ZMFDE/tTxcGklIVixScORugI7WljZ8qtYdg3DdkTUEQaCwoiYfBuY+lf ByoQ== X-Gm-Message-State: AOAM533Lafjw0RgmQYuYeMyivBcC6aY2EVx+BAT8UJaSV6GRGxSJY/FN t6/A+9aUayzR5k8gm0fd6NFk24Q9WU/NWHjrskw= X-Google-Smtp-Source: ABdhPJwoRS/tohgTWgFAJPxXbo8/xibUjch7SlGQl9ze/Bd7FE7P8ZqYx6H2IQ+8pYaFsTCAdaakCh68g53Y+cz/SPk= X-Received: by 2002:a05:6402:2806:: with SMTP id h6mr32986106ede.120.1637810046318; Wed, 24 Nov 2021 19:14:06 -0800 (PST) MIME-Version: 1.0 References: <20211124151915.GA6163@haolee.io> In-Reply-To: From: Hao Lee Date: Thu, 25 Nov 2021 11:13:54 +0800 Message-ID: Subject: Re: [PATCH] mm: reduce spinlock contention in release_pages() To: Matthew Wilcox Cc: Linux MM , Johannes Weiner , mhocko@kernel.org, vdavydov.dev@gmail.com, Shakeel Butt , cgroups@vger.kernel.org, LKML Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 9F584F0001F3 X-Stat-Signature: uwp7g4q1ibu3wyrg48p9yy5k4cii5ib8 Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=nDcBW1cR; spf=pass (imf17.hostedemail.com: domain of haolee.swjtu@gmail.com designates 209.85.208.48 as permitted sender) smtp.mailfrom=haolee.swjtu@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-HE-Tag: 1637810047-955309 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: On Wed, Nov 24, 2021 at 11:58 PM Matthew Wilcox wrote: > > On Wed, Nov 24, 2021 at 03:19:15PM +0000, Hao Lee wrote: > > When several tasks are terminated simultaneously, lots of pages will be > > released, which can cause severe spinlock contention. Other tasks which > > are running on the same core will be seriously affected. We can yield > > cpu to fix this problem. > > The realtime people will eat you alive for this suggestion. Thanks for pointing out this. > > > +++ b/mm/swap.c > > @@ -960,8 +960,14 @@ void release_pages(struct page **pages, int nr) > > if (PageLRU(page)) { > > struct lruvec *prev_lruvec = lruvec; > > > > - lruvec = folio_lruvec_relock_irqsave(folio, lruvec, > > +retry: > > + lruvec = folio_lruvec_tryrelock_irqsave(folio, lruvec, > > &flags); > > + if (!lruvec) { > > + cond_resched(); > > + goto retry; > > + } > > + > > if (prev_lruvec != lruvec)