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 D5D41C71150 for ; Wed, 28 Aug 2024 23:37:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 435856B00D9; Wed, 28 Aug 2024 19:37:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3E4A16B00DA; Wed, 28 Aug 2024 19:37:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 288196B00DB; Wed, 28 Aug 2024 19:37:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 075D26B00D9 for ; Wed, 28 Aug 2024 19:37:48 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 890E01603B0 for ; Wed, 28 Aug 2024 23:37:47 +0000 (UTC) X-FDA: 82503268974.01.93EE4E9 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) by imf09.hostedemail.com (Postfix) with ESMTP id 87C22140012 for ; Wed, 28 Aug 2024 23:37:45 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=A0vQVtI1; spf=pass (imf09.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.210.181 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724888178; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=hwopE5jWUIeqd53SuTlMjbQzoQUqqk566Vh/JpcotGA=; b=SxsooJazLd2d5tD1N1ksgGJFsJ02cHPcomLdMeu+tKcrSueVws/9LBZq5+SROT1qcrbIUF 7mLfQkd/mpLA7dg9Nj4E1GE1IIOPHDaqLOJAa/ZN73XHyxh5v0qMWrnE1oY+acjLVQiqzS LaIVWQy+QSWSbaw1M0ff6EWahWLMi1Y= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724888178; a=rsa-sha256; cv=none; b=kqiyNr7Yf4cA9i8ZJ3cSsfutDOTnHIqEqCTp9R5n8P4Qb1bUJwnlGwoZ3AkmDwNkTcMeK9 IJj5LgS5qIkJr7WdUVeux7HxdRP9yv7pLlSKLjOiZe45l+nYJqaQjiEF6KlUoKHn/bvQ0E gO0krS3Z+lysATWH+pXeze6RLTnIW7E= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=A0vQVtI1; spf=pass (imf09.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.210.181 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-715cdc7a153so63406b3a.0 for ; Wed, 28 Aug 2024 16:37:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724888264; x=1725493064; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:subject:cc:to:from:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=hwopE5jWUIeqd53SuTlMjbQzoQUqqk566Vh/JpcotGA=; b=A0vQVtI12RH4njMwv0xo57y9aEow5rXEnTOV3vMfQjkJmCyNMBBcowWreEvMoaL/Gu qA8rF0siY3FaGGXWlMUgD5TWyIx3bMAohqtU0rpIrz/w0UKssgpERZi7eK8V9DBFovUl YXD3od7/H+fdFbRpdTEcXpxZrTfDmsTw4tYqkyM2OHYowripgoWgUCGQZx4fRF7cfXUm MLo+1l+Wf08/kE2pGT/WGfSG/MB0Nk1hU8f4Dbaa5JCb2F0yu53aBSTHeMg350tVwP8M aOWVitSvfn2M0i/AliflciqoyBwv+Gba6wwqIIh7CC6weWfrTXei2ww2HFAL8+TG/chT bjAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724888264; x=1725493064; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:subject:cc:to:from:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hwopE5jWUIeqd53SuTlMjbQzoQUqqk566Vh/JpcotGA=; b=eBM9BYTUI+iYSZnSL9HEffb+ESoh+UGiSUrNz3iSzMRbZVjCiBUTt52984vONvFV/M 0Gs/ra/ryl3rh1BNKYNi9OCMJ5EJCd/KxpcHoHWAK+VYwOqsrgC7eqUj8yYxkMtLINwi JPmNVbk2qej2QzhXeXzjvsJk3DCAJWk8UQtpoxKpqqdftz3J16FiqWoquG+r9ywzhKUM TjSje2BC6fjaU9kigAF+qYSqRt69GPeaiPlX4uVRulvAItapQUzJygj7UIKwSWQVx53N I+D0olnCWMNtJxp38mPqLeKFpUvR05mOcHh9WpkKkBclwC0JpBargWuXLHNDHcRjO3aj rtxA== X-Forwarded-Encrypted: i=1; AJvYcCVAa34TJO+BS1bIp1DEEs6JjHX7rXvNQ6F9yc59ZzqgrPvo0y6M2mHG+FHTC770UeaQXhWJ3wrrWA==@kvack.org X-Gm-Message-State: AOJu0YwIOFtT12u4FMEAR5iXMMcE3B1zbc+0X6E43dzQV2/+7Q53tBpM lfjDYahEZ3NcaiqW2RHECn0bOoq0JrNleV1FkQpXP5wjoMXZYxTsYi7YmA== X-Google-Smtp-Source: AGHT+IEzAez55q8z2qQr3rtFKkmRxq931Z3PJpXAcI9AghjEOMoiXfgLc0+PSjQlHhUYJTB3RCV6fA== X-Received: by 2002:a05:6a20:a12c:b0:1c4:942f:1ac7 with SMTP id adf61e73a8af0-1cce1512e72mr1387317637.0.1724888264070; Wed, 28 Aug 2024 16:37:44 -0700 (PDT) Received: from DESKTOP-DUKSS9G. (c-76-133-131-165.hsd1.ca.comcast.net. [76.133.131.165]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-715e56e4898sm18378b3a.179.2024.08.28.16.37.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Aug 2024 16:37:43 -0700 (PDT) Message-ID: <66cfb4c7.050a0220.375d58.00ea@mx.google.com> X-Google-Original-Message-ID: Date: Wed, 28 Aug 2024 16:37:40 -0700 From: Vishal Moola To: Kefeng Wang Cc: Baolin Wang , Andrew Morton , David Hildenbrand , Matthew Wilcox , Zi Yan , linux-mm@kvack.org Subject: Re: [PATCH 2/4] mm: compaction: convert to folio_isolate_movable() References: <20240826040132.1202297-1-wangkefeng.wang@huawei.com> <20240826040132.1202297-3-wangkefeng.wang@huawei.com> <3f8300d9-1c21-46ad-a311-e97dc94eda08@linux.alibaba.com> <606adde7-44ff-476a-bd01-2141eb28943e@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <606adde7-44ff-476a-bd01-2141eb28943e@huawei.com> X-Rspamd-Queue-Id: 87C22140012 X-Stat-Signature: o83fs64sg57tyi6wy1zjt4wijabbw3sf X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1724888265-178300 X-HE-Meta: U2FsdGVkX19PIhuE+fTgS50+fsE+B6ptsMtZDfJuPMTb8sb9/gJZKweUkB4jAmUXBYnGgPDwmylnOqw8BkQdssH/hyXGwtiqoqCKmvQPxfUO1AbLwIwftk7AQfFt5QZYleBKopQlGJOQrshlnfb0g0QYyd7zC//mHJ0FA4nrEAvAJcG1I9JBbfrWmb4xxe23VGvwaElPzyNUDAHibF3LZkZe3yegHFNB153Uooz0J7vr/rTY5Ae3s5AImefWxTW+E65PLwLStrmpUynscyXqjYcqjKlQmMITqo1yOrXMCSi7erA+JWFQ/gmTf5A1nyIuXxfHjE1ga61/s3+0pT0slG5U4wuPijJZJnhr2ndiR3Aowrd2C3FByPU+gkJRRwk3AxEOGK20w+QIm94QQkRf96Y5ydNBARbqpd8SCk+0kfXhd9YUvAXiPCOefEej2hmbYcoMchBoSkMEONMNVKh0fO6lQuqfNYBJDJqsHDSnopiRrD3FsrwNwk3HumzXJNuwTe+Y26SwpgnhbvFUM5mPQsjYe7F7boTh18GCa7RqmxQax39CFCz3ruNUjWyOWslKRxcn2BD25TsZfqyeHX65Ugx1q5LLMQtkVnXOfHwIYehlYoX6HR1WM+IQ4NHYna72V0Bb/WsyIhOnfqqMJrKXerbQ2T55B3hD9dbT575iA/iGxTKmo7Zkum7LX7YRMofXsvWsTCL2PlY43CYYiRwSRhJ3YFJt9C8uIj9KF6Q4BfOpvkWLQRj4AGsoYXjMOZuDz3aJqiHrwxuNxXjo1dHOL7iFa5BWquOTBU1tOwWjAIfVG1FW6CAMRuaMBwkAVI1d1a9tfgZhtYNQYcE+MUo7F7vG/XpGd/0gaCSPi2jkBJz4BxJ5sZ9j/Rjsu/+ByhdjuxpMbj+ksebNG6ZIwzWChzvNQjCqZdivv32/vRffPsuttLPTy/A0fP9q4oFo7ypdvXGd+f0YdzoptqZS3sR HgnFqJpW 9rE/0264bg2S5R/cHWsm9RUeVhjn87dYukW+l53NuqdkbQNxyWJQG899ptx7SFUqDl5401hrF8Al2nvvnqMnE5atSde6t+0i+0JoD/B3exSeo96MWrNS0gYVTQ/V/9bo55WQriEJtz9pueXVGTOn5kc1eGT1RlDyElZUnynZMOUce2L6AA0tkb1W/zwmQMtBlwJJXbFBf0O5kQ16hgrptAZIcm8N8wLZhGZNBMmqGWr2AGhRhMXcUGYoUNNK03KeQjPIv7pbs3BxHOxJIzIClyfodWPd7d1n4ZnLeToyRThO5LwIM0RXA0sVgCV9e6oXOgZSuCtN5zFw61Po791CQxE34PKBSW/HOxgUVvNBA9j3m0Nju3Ms+7HFJ/XDcrDWlP2s0q5u/g+ZQoTOdpIpnkrrcGnpKlrTyuRbVY/cpZAMEBJbvO7zdDpsUyCqQsagSspBBwT2oGcdG67GK/pzpvZBYFZUFrHot93EIEiuNX4yQCtA= X-Bogosity: Ham, tests=bogofilter, spamicity=0.001716, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, Aug 28, 2024 at 08:36:03PM +0800, Kefeng Wang wrote: > > > On 2024/8/28 18:04, Baolin Wang wrote: > > Hi Kefeng, > > > > On 2024/8/26 12:01, Kefeng Wang wrote: > > > The tail page will always fail to isolate for non-lru-movable and > > > LRU page in isolate_migratepages_block(), so move PageTail check > > > ahead, then convert to use folio_isolate_movable() helper and more > > > folios. > > > > > > Signed-off-by: Kefeng Wang > > > --- > > >   mm/compaction.c | 32 +++++++++++++++++--------------- > > >   1 file changed, 17 insertions(+), 15 deletions(-) > > > > > > diff --git a/mm/compaction.c b/mm/compaction.c > > > index a2b16b08cbbf..aa2e8bb9fa58 100644 > > > --- a/mm/compaction.c > > > +++ b/mm/compaction.c > > > @@ -1074,39 +1074,41 @@ isolate_migratepages_block(struct > > > compact_control *cc, unsigned long low_pfn, > > >               } > > >           } > > > +        if (PageTail(page)) > > > +            goto isolate_fail; > > > + > > > +        folio = page_folio(page); > > > > I wonder if this is stable. Before page_folio(), it does not hold a > > reference on the page, so seems we should re-check the folio still > > contains this page after gaining a reference on the folio? > > Oh, you are right, so two way to avoid this, > > 1) re-check 'page_folio(page) == folio', but this need change a little > more. > > 2) directly use folio_get_nontail_page(page) here, and folio_put in the > following path, this will try to get for any pages, but it should be > accepted ? > > I'd prefer 2) but any other suggestion? I think option 2 makes sense, and simply use folio_put() on success and goto isolate_fail_put on failure instead of isolate_fail. With option 2, it might make sense to have folio_isolate_movable() expect to be passed a folio with elevated refcount. Then it could be treated similarly to its sister function folio_isolate_lru() and simply use folio_get() for its reference.