Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp307424pxt; Wed, 4 Aug 2021 11:38:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz63KKZeK/zX6hvyj6qp6WlzDlrgQS6Ren/rg1wqdgKDr8IDd/SVeedHg9fyQmIjfCihs9e X-Received: by 2002:a5d:83c4:: with SMTP id u4mr483897ior.21.1628102289216; Wed, 04 Aug 2021 11:38:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628102289; cv=none; d=google.com; s=arc-20160816; b=fTHZbXL4ZmsRSBJ0Z7/qu4JpsUcRuWrm9azUHd+snHcqrNPy3k0v5TaiJbUMi1A/xk 1oqssN/+1xhkLykjG8mt4dqRYayZxxPEGqWG8qFHzonSmGIRvkpX43HOB9ccaqYL27pK rscH/LSYUovfJzpv3fP54M6q1RgFEGDAJwXaPBE7CT6iaPBJOjtRnUfAxSjQnvqR1Bni MCPquaqLTnaVLQT3xuNgHuY4sa6BURLkon6agj7dvskEI/IUgSsVtDNnVAJa6uEk5XIi i+ylNqQGbld2ZrscZPWEmNPVQdFARr+/vYRBM07Gl5KYlgrC86xDMogGj/j0qSblr6aW vH7Q== 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; bh=RWlPdL6DwUB6mJRKo0+xi01KggPqUO2/jhQbASI+2FE=; b=WfPMcOZ8ChD7PrVrgxh89FrYA2PS1ydCTqyiN1cEmxxMY6IKr2FOmOEiRG3MJiF+zA YK3umyG4FIhYAOx6ECyiYyf5B4k/8hc45YOe6PKHa0XWWcyY9eKZCEd9Q/mH63YhFNZK 7JmViuz/clTfvo44Wse/2WH+O1X2FlOQMeWE/Eh8BzdUiusqoAq0SjKDYqDT2MCZjU+G P3juQu2MJoBypHzJ/EzkXZTWhxZh7mM0vNufbVl5R/uyaCyRMGnOewZpx2uA3denrdnE GWkEaV60M3lU/nCZiDd/qz5PpRZPZ/kWO/V//klRNuqdV4nU+qZieF2iAoqO/475wqo7 4/rg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@shutemov-name.20150623.gappssmtp.com header.s=20150623 header.b=QE89PTFO; 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 p10si3399891iov.66.2021.08.04.11.37.54; Wed, 04 Aug 2021 11:38:09 -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=@shutemov-name.20150623.gappssmtp.com header.s=20150623 header.b=QE89PTFO; 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 S238687AbhHDOXJ (ORCPT + 99 others); Wed, 4 Aug 2021 10:23:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53336 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237709AbhHDOXI (ORCPT ); Wed, 4 Aug 2021 10:23:08 -0400 Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0A8BCC0613D5 for ; Wed, 4 Aug 2021 07:22:55 -0700 (PDT) Received: by mail-lf1-x130.google.com with SMTP id g30so498651lfv.4 for ; Wed, 04 Aug 2021 07:22:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shutemov-name.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=RWlPdL6DwUB6mJRKo0+xi01KggPqUO2/jhQbASI+2FE=; b=QE89PTFODc67XC5H0kcbNIHy9cHlhvZkaAEzK2h6T5fIoEU3d/4E71kndL/f8s0tX+ JJ2IIyqzYAV0j2e/4ewwAvS4XIxTlCfeK/XRJ/YxRCkeu+mNPzOr1xke1fPqRbdyAR4B HpxGTKCP36gIfxXsUcVm/lgcHiih0hCBskkrIwgV3F6DfSmJA40eJiRToQYPcUYR0eyT RCbPpYju7Y4YRRRqtxU07ogL97sP0o4V1NsUx2pYjrfcgP0VetrNVpj/ytQszajPV9MH 6wty0FiHYQ32pTJpHGrmLfDORsARUr2M1ZV8qaW76tJn4/ZHo3J7Cc8u8NvjL/6y+gTn ZYpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=RWlPdL6DwUB6mJRKo0+xi01KggPqUO2/jhQbASI+2FE=; b=apuW8jf2Y39Xu9SxfOP5ldDxus8iHj0GiQL2lEXkWN7doaz4zYowkIHRqkdXHvomef IBlEJiFvtEe6+1r5VRkBG0vPqqtfD8ubB5f6LsGEdDUV3383Vw72OZt9+7ZIjpY5bCzO hdtLxdBpnlOdD24MtGpv3B7aa/pOb0oZaliZCjiRO29mQGOarl1m65kyilotLWy1ffcy ZO728y6WNlaT2TE3n+uiCYWNfbYFYBg0rEIidZiHf+/+7gKiK3Y6HS28nrLBd8wxcDyk SLdQ9PE6UomXQd+Q9BR19ueX0xSA+sjMXR3b7qvIGIoqwrORqhkC7Z2ZOYXBSHmOifoz Wxeg== X-Gm-Message-State: AOAM532HB0DKvt3Ris+nmqfR2Uv/CZkZJFEnp3JRJMg1FuZX40JWa79m aFpqj8RcTG7BFGeEWR1jMO3BLQ== X-Received: by 2002:a05:6512:3481:: with SMTP id v1mr3277279lfr.325.1628086973453; Wed, 04 Aug 2021 07:22:53 -0700 (PDT) Received: from box.localdomain ([86.57.175.117]) by smtp.gmail.com with ESMTPSA id o10sm211359lfl.129.2021.08.04.07.22.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Aug 2021 07:22:52 -0700 (PDT) Received: by box.localdomain (Postfix, from userid 1000) id 00CD6102BC1; Wed, 4 Aug 2021 17:22:57 +0300 (+03) Date: Wed, 4 Aug 2021 17:22:57 +0300 From: "Kirill A. Shutemov" To: Yu Zhao Cc: linux-mm@kvack.org, Andrew Morton , Hugh Dickins , "Kirill A . Shutemov" , Matthew Wilcox , Vlastimil Babka , Yang Shi , Zi Yan , linux-kernel@vger.kernel.org, Shuang Zhai Subject: Re: [PATCH 2/3] mm: free zapped tail pages when splitting isolated thp Message-ID: <20210804142257.tsgzpfc3zq7um7iu@box.shutemov.name> References: <20210731063938.1391602-1-yuzhao@google.com> <20210731063938.1391602-3-yuzhao@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210731063938.1391602-3-yuzhao@google.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Jul 31, 2021 at 12:39:37AM -0600, Yu Zhao wrote: > @@ -2506,6 +2508,25 @@ static void __split_huge_page(struct page *page, struct list_head *list, > continue; > unlock_page(subpage); > > + /* > + * If a tail page has only two references left, one inherited > + * from the isolation of its head and the other from > + * lru_add_page_tail() which we are about to drop, it means this > + * tail page was concurrently zapped. Then we can safely free it > + * and save page reclaim or migration the trouble of trying it. > + */ > + if (list && page_ref_freeze(subpage, 2)) { > + VM_BUG_ON_PAGE(PageLRU(subpage), subpage); > + VM_BUG_ON_PAGE(PageCompound(subpage), subpage); > + VM_BUG_ON_PAGE(page_mapped(subpage), subpage); > + > + ClearPageActive(subpage); > + ClearPageUnevictable(subpage); Why touch PG_Active/PG_Unevictable? > + list_move(&subpage->lru, &pages_to_free); > + nr_pages_to_free++; > + continue; > + } > + -- Kirill A. Shutemov