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.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 55675C433DF for ; Fri, 17 Jul 2020 21:44:27 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 1605B2064B for ; Fri, 17 Jul 2020 21:44:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bcKAE/Sf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1605B2064B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 8C6928D000E; Fri, 17 Jul 2020 17:44:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 876518D0003; Fri, 17 Jul 2020 17:44:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 78B978D000E; Fri, 17 Jul 2020 17:44:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0022.hostedemail.com [216.40.44.22]) by kanga.kvack.org (Postfix) with ESMTP id 690058D0003 for ; Fri, 17 Jul 2020 17:44:26 -0400 (EDT) Received: from smtpin28.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id F20CA9091 for ; Fri, 17 Jul 2020 21:44:25 +0000 (UTC) X-FDA: 77048896890.28.unit46_1d0ee4c26f0e Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin28.hostedemail.com (Postfix) with ESMTP id C8C6B879D for ; Fri, 17 Jul 2020 21:44:25 +0000 (UTC) X-HE-Tag: unit46_1d0ee4c26f0e X-Filterd-Recvd-Size: 6789 Received: from mail-io1-f65.google.com (mail-io1-f65.google.com [209.85.166.65]) by imf28.hostedemail.com (Postfix) with ESMTP for ; Fri, 17 Jul 2020 21:44:25 +0000 (UTC) Received: by mail-io1-f65.google.com with SMTP id f23so11906463iof.6 for ; Fri, 17 Jul 2020 14:44:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4Fd/5SIkVrVFZzPalYHXNTeKn+0gi9vnLo7/Yumj5M4=; b=bcKAE/Sf81eYZEfhBovzR8YAPYCTd4vV1lqFR9E9VoqmGNHRnfUkMDAduGb0PP8akQ sIlW/+OfHMBXiZosoLVNWKKIhZZ+lSCoSeecneDWd8o2XW60vFhgV379Zig5PvG5Uvwn FAYEykMn7Cm93tftDLUKMQicxkX74eQRjmgM+AJ0MfgC4qRz8mo8L379FYPq2kj/A3LY 5EN8Cd8nRrLOiv6jwB1tAF8zlfSlmVAnyIzMIcrpfqZuoq0PMB4kH5NSnWFLfH+Z1Ik+ fwM3jQYeDSTd8sllNRP5CAS3ccrRCFCNWwFvuh5/3k1slHFI8SbPsLoF4evxU2nHbRUH H1FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=4Fd/5SIkVrVFZzPalYHXNTeKn+0gi9vnLo7/Yumj5M4=; b=QGgqu/IWL74sfstZnEBLZn80+ErYsGtlEt5tyziIhhhtSZfbqrZjz+j4L8TXbrvqKT arGiYIRxxIrSWftkS+AQEK7r9YDiKNYKsRM0YQdvqJMBxnMupMxzA2iY9xvnP3bL1SuZ Fo0jF8zXKbH7+eRmsa9jwjPt5wt0NNQMdtVZY7ClN5LPvOKaAUkJM4Riz07O8vg3VCCq APBEVZw06xZIxMqnhDSPasswGKbw206hTHan4r85eBXQ2Lt9txZY3KnX0KBMiDiCgfU+ 7bLaH2jK2+z0kLSHjDnkAfjaMNT6ZgH7WsspLbI7cCqz7iIqg6oCcDA8MkNlGyvtByTq UDxQ== X-Gm-Message-State: AOAM533Gin0w81TWxfKKf9ESOUzS7IqnL6u+96GDNQdzKKIKHbp+LrUT +DVsVmPulSRBIHpssWcvK1SMjswgNSVbxnfQq1c= X-Google-Smtp-Source: ABdhPJytlgpn/i7PanH2EvX0H9E4zJ9p4z24bWhVnwVUVfqICVJrTSEyZxNvXpQlM77e59f7BvJaOv+pSzbqk/edfC4= X-Received: by 2002:a6b:2b12:: with SMTP id r18mr11208398ior.88.1595022264835; Fri, 17 Jul 2020 14:44:24 -0700 (PDT) MIME-Version: 1.0 References: <1594429136-20002-1-git-send-email-alex.shi@linux.alibaba.com> <1594429136-20002-21-git-send-email-alex.shi@linux.alibaba.com> In-Reply-To: <1594429136-20002-21-git-send-email-alex.shi@linux.alibaba.com> From: Alexander Duyck Date: Fri, 17 Jul 2020 14:44:14 -0700 Message-ID: Subject: Re: [PATCH v16 20/22] mm/vmscan: use relock for move_pages_to_lru To: Alex Shi Cc: Andrew Morton , Mel Gorman , Tejun Heo , Hugh Dickins , Konstantin Khlebnikov , Daniel Jordan , Yang Shi , Matthew Wilcox , Johannes Weiner , kbuild test robot , linux-mm , LKML , cgroups@vger.kernel.org, Shakeel Butt , Joonsoo Kim , Wei Yang , "Kirill A. Shutemov" , Andrey Ryabinin , Jann Horn Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: C8C6B879D X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam01 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 Fri, Jul 10, 2020 at 5:59 PM Alex Shi wrote: > > From: Hugh Dickins > > Use the relock function to replace relocking action. And try to save few > lock times. > > Signed-off-by: Hugh Dickins > Signed-off-by: Alex Shi > Cc: Andrew Morton > Cc: Tejun Heo > Cc: Andrey Ryabinin > Cc: Jann Horn > Cc: Mel Gorman > Cc: Johannes Weiner > Cc: Matthew Wilcox > Cc: Hugh Dickins > Cc: cgroups@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Cc: linux-mm@kvack.org > --- > mm/vmscan.c | 17 ++++++----------- > 1 file changed, 6 insertions(+), 11 deletions(-) > > diff --git a/mm/vmscan.c b/mm/vmscan.c > index bdb53a678e7e..078a1640ec60 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -1854,15 +1854,15 @@ static unsigned noinline_for_stack move_pages_to_lru(struct lruvec *lruvec, > enum lru_list lru; > > while (!list_empty(list)) { > - struct lruvec *new_lruvec = NULL; > - > page = lru_to_page(list); > VM_BUG_ON_PAGE(PageLRU(page), page); > list_del(&page->lru); > if (unlikely(!page_evictable(page))) { > - spin_unlock_irq(&lruvec->lru_lock); > + if (lruvec) { > + spin_unlock_irq(&lruvec->lru_lock); > + lruvec = NULL; > + } > putback_lru_page(page); > - spin_lock_irq(&lruvec->lru_lock); > continue; > } > > @@ -1876,12 +1876,7 @@ static unsigned noinline_for_stack move_pages_to_lru(struct lruvec *lruvec, > * list_add(&page->lru,) > * list_add(&page->lru,) //corrupt > */ > - new_lruvec = mem_cgroup_page_lruvec(page, page_pgdat(page)); > - if (new_lruvec != lruvec) { > - if (lruvec) > - spin_unlock_irq(&lruvec->lru_lock); > - lruvec = lock_page_lruvec_irq(page); > - } > + lruvec = relock_page_lruvec_irq(page, lruvec); > SetPageLRU(page); > > if (unlikely(put_page_testzero(page))) { > @@ -1890,8 +1885,8 @@ static unsigned noinline_for_stack move_pages_to_lru(struct lruvec *lruvec, > > if (unlikely(PageCompound(page))) { > spin_unlock_irq(&lruvec->lru_lock); > + lruvec = NULL; > destroy_compound_page(page); > - spin_lock_irq(&lruvec->lru_lock); > } else > list_add(&page->lru, &pages_to_free); > It seems like this should just be rolled into patch 19. Otherwise if you are wanting to consider it as a "further optimization" type patch you might pull some of the optimizations you were pushing in patch 18 into this patch as well and just call it out as adding relocks where there previously were none.