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 2127BC25B4E for ; Sun, 22 Jan 2023 12:46:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A0E056B0072; Sun, 22 Jan 2023 07:46:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9BE4F6B0073; Sun, 22 Jan 2023 07:46:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8ACB86B0074; Sun, 22 Jan 2023 07:46:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 7C8CF6B0072 for ; Sun, 22 Jan 2023 07:46:41 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 4F6131A074F for ; Sun, 22 Jan 2023 12:46:41 +0000 (UTC) X-FDA: 80382409002.06.B3C5E00 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf26.hostedemail.com (Postfix) with ESMTP id A3453140005 for ; Sun, 22 Jan 2023 12:46:39 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=pG9PACit; spf=none (imf26.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674391599; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=CdKr/UFEr7dJdPPUgqI9vUvjW7dN3rwVi2gyKtLfEgQ=; b=H83ngngtzN/Y+DIRgCkaqFUV3+qSMt4WiWgMKdx+qrpP/9vheCI3caMewT4MUIXh6Cn3hi QvqFUBk0boldJmKdCX3fees6ckleTO15rZvSxf5a9KdkMBQbONwIDi8O0oumQH04X12IL5 ZOUmKIqHCT7Ym2yJBzRelr6eLc2fLOs= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=pG9PACit; spf=none (imf26.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674391599; a=rsa-sha256; cv=none; b=wd/DGs0ZxW+az7+UEbC9F62DwOHsopfzofW6WWm3iNanXa+ZcvBotQIw5rGLoAY4TeR83r TqeoQpsDzQwd8FBF7o4v7y8us7BHl5OyPGviPnqtWw8HYgCG8w36G3GLCN5apAb0PlYAKm 0VRr5lz2GpR63JigNop6So9vSFkXRu0= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=CdKr/UFEr7dJdPPUgqI9vUvjW7dN3rwVi2gyKtLfEgQ=; b=pG9PACitoGmNRyTgP5wHmcRXoU 6di/FFfDlniKNG8UQN0JTdq5llbPcaCZfBpFFpYAkiIfMMPAdniEu7IMSFzq2LBRocXRbo3u7x+nJ f+hqWjL+I5jQ15IwuaWF0Qon+YyhOtMn/SO93ut5fERcyUyUntbpf1bdYL6PG0HK1k6akPowZV10w Ja8gVuY4Dxn6Ad9P8y37ROYw3Ai+A3Z0r2kU6VoFVDt1BT5Vpsk1U9YhHJ4+oUqN1Jf3+4JRdq45F yOQGxkAx+RarD/KXrd6q420U0+ZHCCKH+8qAybWbjJTh9Jp7XFmF6TpKrs+zuttsLkn9pXJdnzy6H GOxpBKzw==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pJZk2-003YbK-Uy; Sun, 22 Jan 2023 12:46:34 +0000 Date: Sun, 22 Jan 2023 12:46:34 +0000 From: Matthew Wilcox To: "Vishal Moola (Oracle)" Cc: linux-mm@kvack.org, akpm@linux-foundation.org, sidhartha.kumar@oracle.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/3] mm/migrate: Convert isolate_movable_page() to use folios Message-ID: References: <20230121005622.57808-1-vishal.moola@gmail.com> <20230121005622.57808-3-vishal.moola@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230121005622.57808-3-vishal.moola@gmail.com> X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: A3453140005 X-Rspam-User: X-Stat-Signature: c46dh5jy5ggnja537rc1kgu4aeannyd4 X-HE-Tag: 1674391599-517371 X-HE-Meta: U2FsdGVkX19IuZTG2KMiJ9hw+cI6zsLGjIs2mDUygsqyaZZ1XjccjE4zbhHSV36qJDHE77aGMuzs1cj5CgQLGdNQbLrVbjSKL3BwU9zNFs+8J8F9OFsHKkWaJncXLk7O4kaP4q3Uz+xwxf0xiW0L7ag54MUTnxHP4QYGCmgkmJjv5w3OTS58YFIzFtk2/x1Eb2m1Qv77aB74xcvAIKbZrWExH8d3hhD0OBWFWxJh7DwnRatZoWEZCoY1F8oFpthmvK09fS6ru1wAVuTQSTxhhf2YOZO/NTnB9eeGT4UDAgpz+uquH8u3z6VrKaAbppWQaDmw/qx0IxpH2Qd99K2WK0WRjG4vkMfAjC0n8O4lZTPGqTQDN1OjkCGwUDOwuXokPaQ7uIa2hLFejqnLTy6RiHLFnRYNMHzRRobWoFQjdGpGuGbbPJ15nVztMGrsyJeWNqspRRIkEZGXTIsgnTQomocI0dVFpx2/a2eNVXte9M8NhjtIWrXVr2La/H9NSWjteIIqg/be9lFMsC+7eH8Wk6Ms59RB6VMS1bJPpude7y5fz9lRM5D9sT3fiknhRNXnwtyQoSYDs1aStw2cFHwsOuC6r5nNzGZ9ZAD4GTx4tgE2GW/4iXt+LU/bLW0MIUXmi0xq/YkuAxsPl5u6NhQPPhdsUHij7LZAxvVkdwhyCAuVSCTVg9TXaSueFjUV68gja7NEMbG6txRrF/gFu1nPwHAErhNxbX5dLRZ6nyPJPyR9RL/c7zDqnD9wCAByMngDAWbXUnlMTqVorZABsEUHpqX2sOGKA8/oBVHWQV6dPxTWj5cNp5XNl3tqAZyETPRuLR2C+SIue4BlTKKEGqvWJUvb+0bTkAqBI7E0X/Zu/bvtSjq/ZVb/fr5uRs3I7ABMxbVWVxCTos1VjCtLdZk0NBXtGLgPL+Xu407nhXwruigqQrNSjV+VQ5TXlQFi5uOwV2LKToMaLQhmzH3nT1w yw+xtCAk RiyPq+OeEHtKGmJ6kZCuEfULJRsslzXef6xQ9tG79yvpklknn2gTOi3NN1E4A5rKqAUvUQto2cdknqDkCcLUxvhICPRqSslm8hy2xayC7PzsFqpBkl6KLpXjD6O86cYsAjxlmbkDsbalNjVf/rInpXkgv+REF3B8BrVU62XgSmGbf3ilpCPvVGZ6Rwfs1fgTeM/3g35RM8KZI/ttw7PAzQQlQunpP0URvCIZX+XMWsAbl1vG49oCCuOHEAULbeNnEcpcZA6lJ/1oarc8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Jan 20, 2023 at 04:56:21PM -0800, Vishal Moola (Oracle) wrote: > int isolate_movable_page(struct page *page, isolate_mode_t mode) > { > + struct folio *folio = page_folio(page); > const struct movable_operations *mops; > > /* > @@ -71,11 +72,11 @@ int isolate_movable_page(struct page *page, isolate_mode_t mode) > * the put_page() at the end of this block will take care of > * release this page, thus avoiding a nasty leakage. > */ > - if (unlikely(!get_page_unless_zero(page))) > + if (unlikely(!folio_try_get(folio))) This changes behaviour. Previously when called on a tail page, the call failed. Now it succeeds, getting a ref on something that at least was the folio head at some point. If you're going to do this, you need to recheck that the page is still part of the folio after getting the ref (see gup.c for an example). But I think we should probably maintain the behaviour of failing on tail pages. Maybe something like ... if (unlikely(!get_page_unless_zero(page))) goto out; /* Refcount is zero on tail pages, so we must have a head */ folio = (struct folio *)page;