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 E6946D6ACEF for ; Wed, 27 Nov 2024 15:52:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 788306B007B; Wed, 27 Nov 2024 10:52:12 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 738366B0083; Wed, 27 Nov 2024 10:52:12 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 626D06B0085; Wed, 27 Nov 2024 10:52:12 -0500 (EST) 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 47FE06B0083 for ; Wed, 27 Nov 2024 10:52:12 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 02703A171D for ; Wed, 27 Nov 2024 15:52:11 +0000 (UTC) X-FDA: 82832316252.06.1D4A609 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf05.hostedemail.com (Postfix) with ESMTP id 51AA8100005 for ; Wed, 27 Nov 2024 15:51:58 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=kd1BGdRb; spf=none (imf05.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=1732722725; 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=OE6B6eOyFkTTMKsk/95V9LUSTWLr1AzEROhaO9ZQVDs=; b=kqi39baGRrx2c9g8Fm+Gw1O+Tt2jrNHtXutWen9pY1QGvHFKqOKwiwjYSzj3rHkdGsQr6X lrWQamnin8ZOWEXDNMaXcAYQHoPVaBIDm6VPNV2RhXWsMEV/06lQoGQnaWz6z0Nr/WS/Y1 58jh5ksjQjAj11jKGdiSvIaByyGSkEw= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=kd1BGdRb; spf=none (imf05.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=1732722725; a=rsa-sha256; cv=none; b=2wHwFLOAK7oTbT5ZyXJBg5SAyj7mFatAhRaDv68spI8PByZpxdcm3rbTaU/TJl1cqYQg1q dnTbrwUNs+kOcepf8zt20AL9PYNr2HtA+tl3VzXgLts2HvEzbkwl2qB3YWk0iEYpBA4for eoHlxqw3QpmIbp/eDcG4S2XpsuNpze8= 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=OE6B6eOyFkTTMKsk/95V9LUSTWLr1AzEROhaO9ZQVDs=; b=kd1BGdRbfNuyPVS7gJVI4hobK9 tgugxpt6JwRkh3322TfQT9ZsmXvpt8TVegeYvCyh/A+jzqtopUO+X2U8rXf2cfib1vi27VeSiFFBg Pm+3HBKwSM9cqjpXpXKtQPoU5BoR7fNXeAQXeWlf+ClVmujyV4JpYLv5Fxx09gyjLzeOOtP25iWyz XFb6ifhklY2zZNuUGckbvMLqUlx9MdR03pn4FJlW1mmMllotumuTHcPxOg0EanJQImBEdSd5XIRzJ EL/9jOZyQb7c/6+j34UWG4YCElUXWfUKODY5ztTjyxCZEniwpFnQALmcnfKmbjATtTdBJbempbgkk Clu8qqpw==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tGKKi-00000001RC6-041U; Wed, 27 Nov 2024 15:52:04 +0000 Date: Wed, 27 Nov 2024 15:52:03 +0000 From: Matthew Wilcox To: David Hildenbrand Cc: Andrew Morton , linux-mm@kvack.org, William Kucharski Subject: Re: [PATCH v3 15/15] slab: Allocate frozen pages Message-ID: References: <20241125210149.2976098-1-willy@infradead.org> <20241125210149.2976098-16-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 51AA8100005 X-Rspamd-Server: rspam12 X-Stat-Signature: jrxhxacr6kw5bcskeiwd8ffwug1tr45u X-Rspam-User: X-HE-Tag: 1732722718-744141 X-HE-Meta: U2FsdGVkX18T7KTUaiIZD5QqfYQjRgIPVukY8CfLaHTURx+IsrIMQICobLfAS5a2wtknpSMZLmizyqsYG0LTawUGX7U/GWNN4xhuYLyYoOYxydEYKgqdnwjK1B6xznQnMmgc+Xulvt8dh88qerlLJK9IWmMNhlztJDbLuNcH1MD86sxfueQapnUKU+elq67X6kmDN0IzlTibXxCG0R/c0IiTViRFPcmKN6cvLnGZJ1EgF6XpnljIHumTA9wrq3/sILIvfLdSeMWCO6CKiygtkTaOWWL/Fw5EJCJ5/nFfoBvxjN0O6uBorEVPCdEl0fxR78hMZGFngoGGPyz/pn7mS43bNCHGdezrX7gy3SBbvdcWbYl/4Y80BvxkgNvVACVuDpHnX+I3xZEHoVH5/omwomENOwCbh5+vd7Ch9uud4GS/9zqnxqzZAwjXre89jzaWcVR9tI4PprJpCmJHoWjLtVI7pftxtQ5g39+YRmr/JF3dy38VHP6lDH7x4+NDnGad2udyA5tSS4Snx1XLQo1TLrdrdqkf+unL2RiFlld9m7vwAJ1gC5TDBGScvrOhxHrgrpEzW5HdPBqqy+oE+7foCkZWWHdveGsN25OUZO26ef3PYfpQipLS+tyMp6srjEXUAcYfGGF47WUNSYGJwPILJnuFRlRvefxV5Sk5mZNxawgHtIBG8UPuoC86t0CIOONEXwVznbWqA02iJsBMI+wBwlH2g1ZV/TSt58xUz+zg66SGA9/7dommfkjuHJ1M0h+WES56g0Ft6G6SbTq+Lk9cMGFecqe3pzE6QI1eWxEL13TEl/vYyGRFd4v90c5LG1ZTo17C5RYz3kOXoJnodDu71dXKOjnTQLVmflt6TZ4yfQDoz33RTYCVh+yPohoZg0xUCEphWkiSuNyC+rsQOCC8wdt8HdwN3JXz4YPibRxGewBTZotAKRXhJ1+yXFwgZ/ib0JoXvXXYE9ArW8FGYhi 2Zz/J0y3 pDoJf2eLEbd3zep43LGPBbDfHDw1eW1U3MBigFeFE0+hc9Brl7ADHd6TLChXTR/0O4IJiFTVt9s2VY1c8XtW4+2rVZmrvvRR+u6sJu9u2rJbNB46cNeBoBDfXQeBuU8LbeGByLcfUS9rjRyT6OLytCBns9SqTkg/yNCHckhXGf0w6xxnovVIlgo9NruhgbRIlM4woXe1B1Ztv2iUzEslxpmGf7OXK3E7MKhUF 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: List-Subscribe: List-Unsubscribe: On Wed, Nov 27, 2024 at 04:07:01PM +0100, David Hildenbrand wrote: > I think we discussed in v1 or v2 that page isolation should be taught about that. > > Likely we want something like: > > diff --git a/mm/page_isolation.c b/mm/page_isolation.c > index 7e04047977cfe..7db2f79b39f0d 100644 > --- a/mm/page_isolation.c > +++ b/mm/page_isolation.c > @@ -101,6 +101,8 @@ static struct page *has_unmovable_pages(unsigned long start_pfn, unsigned long e > * because their page->_refcount is zero at all time. > */ > if (!page_ref_count(page)) { > + if (PageSlab(page)) > + return page; > if (PageBuddy(page)) > pfn += (1 << buddy_order(page)) - 1; Ah, for order 0 slabs! I got caught up thinking that slabs would be caught by the earlier PageTransCompound() check. But that's also a bit messy since we know that __folio_test_movable() can sometimes appear true on slab pages. So I'm tempted to hoist this way up to between the check for ZONE_MOVABLE and PageHuge.