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 5650BC369A2 for ; Tue, 8 Apr 2025 16:38:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0E69728000D; Tue, 8 Apr 2025 12:38:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 06E2B28000B; Tue, 8 Apr 2025 12:38:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E514528000D; Tue, 8 Apr 2025 12:38:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id C3D8728000B for ; Tue, 8 Apr 2025 12:38:17 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 09DD21CC9E9 for ; Tue, 8 Apr 2025 16:38:18 +0000 (UTC) X-FDA: 83311434276.21.27240F4 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf05.hostedemail.com (Postfix) with ESMTP id 547B2100007 for ; Tue, 8 Apr 2025 16:38:14 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=t9QSCPFK; 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=1744130296; 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=q8c5kGuEjzUrixCQz8SJfmiMTtSSZ6M/pup07QMbIZo=; b=KEcHlnJicuJ47llNh5YmmS+78PV35JF2fjjgIcQSYIqSS01jUZRdJ0MBO/Et3VYFlT/Z02 ax4CdjA3peXLmWcDEo7HyGYrwaQ67uX5aa8tKsapnSeMGgyH3AcgdNFUyMS4933C0OQ5N6 KfvhleWPtVATiGpAhNHkvDd8xlCUUSI= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=t9QSCPFK; 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=1744130296; a=rsa-sha256; cv=none; b=Epc6gc7VRb+3lTTlFquEJ3SUfVFWajJVJfhhM1PiTfJIMgC3xVZAIT+B0nxw6wL9vyG67s jINr+Y1b2XxwH9few8uVDGEQUf+P6DZV1+cGI0J/uzFUnYSoS9HoLiThgitGZ5Rpvyrzjp AWV6Sw05sc5XE7nCPUjIEB6LErYZ9a0= 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=q8c5kGuEjzUrixCQz8SJfmiMTtSSZ6M/pup07QMbIZo=; b=t9QSCPFKWRX+IEXLLTG7nFPvtv qDrwtyW8ndHz9ADtdBvDwK9R1/b7GawfLb9Ry+HoJokPfkHZsWEY8kmm+jpBlq6UtOttGJYiUw7RR YQcU45qxxKziWZ2wo5RrV8K7L++OSyA0Pg6W4VCgKFlOrXroMKnLYbVxn6C0iXMlaNBqc55NZ+7ry DAQLC5cv7ugIBp7R5NUNcrnkv6P4QXcnyZrwaQNIPaFmW3FgZted7FwYDS5UBdqKAJDVf5IQeUvr3 Gezyf9Lp+/2LMaVmh9DL4kYQDtD4GOp47bbpeRMV5gu/qNM87gpbm6R4yQ33Abl/XS2ElP+tzf6AO XyawnGVw==; Received: from willy by casper.infradead.org with local (Exim 4.98.1 #2 (Red Hat Linux)) id 1u2Bx2-0000000GpOB-0hye; Tue, 08 Apr 2025 16:37:28 +0000 Date: Tue, 8 Apr 2025 17:37:27 +0100 From: Matthew Wilcox To: Dave Hansen Cc: Kevin Brodsky , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Albert Ou , Andreas Larsson , Andrew Morton , Catalin Marinas , Dave Hansen , "David S. Miller" , Geert Uytterhoeven , Linus Walleij , Madhavan Srinivasan , Mark Rutland , Michael Ellerman , "Mike Rapoport (IBM)" , Palmer Dabbelt , Paul Walmsley , Peter Zijlstra , Qi Zheng , Ryan Roberts , Will Deacon , Yang Shi , linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-openrisc@vger.kernel.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, sparclinux@vger.kernel.org, x86@kernel.org Subject: Re: [PATCH v2 02/12] x86: pgtable: Always use pte_free_kernel() Message-ID: References: <20250408095222.860601-1-kevin.brodsky@arm.com> <20250408095222.860601-3-kevin.brodsky@arm.com> <409d2019-a409-4e97-a16f-6b345b0f5a38@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <409d2019-a409-4e97-a16f-6b345b0f5a38@intel.com> X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 547B2100007 X-Stat-Signature: uqx8d3spq88d6fwtes5587in4aamixya X-HE-Tag: 1744130294-168571 X-HE-Meta: U2FsdGVkX19PGqq6ef6CGHD9++CbB8q4q1WNJFHexHeROC3z3IbC2fH/cD9Iltk7DiTRYuPNu2iXhZY960FSX0ZqBljpUPzP8bLXAVfVEAUEmrSu+nWU5tWgLar6ds/i61U5t/rBceNIvLI3ZIki2UCdN4VZ9ZcZ+peGLvka5jWC+rxibbYiOEGlAPkJkR+WLGDSsVFPlL+lUdEAbCy3MLAem2fZlqI9gIWf59KnTNZqZrf85NixGvT+NFNEbfKO2v3he5DVSayxYy+KQzzl72Y/PiZUfCiP/XGyXECNL/Pf55zpYr1aP6b5Iu5N/NwuXKGyqoOQGyxJ+Gdhdel5gJrRnjTObJnop53hl/ZmCGDcQGFy4pSTMbiiZVlxHqNzpaIfkixhpq0dp47Qil8dF2CbBqey9na3eIhbEu5nMHLU+GkET/xytuQWf+ot2RFLODBgzFUBLQ4F4JLXaEbGN4OTCOzKp9CNL6JdjLFGg1+xy9WvvsI6KpsEdjT8+n9qMDd86XUeLLLSy3KMW9bvFlCF4ikZcoF7gv0zNAMi5kjx3zyhQ2ExJbfVgMZLDGxMtPJfDMD3erZ8pAit55g+/5C9wX0EVDSaONOwHy6sWr7cSXxHe07rps1U6zlqUw51nDxTgAzMSxdHS3CH8m7DpI9EAUVVgG7H1WHzYvtdKiS7IkP0KFqQFL8YoHewYhDewu74hefUfE2EAJ+9ggiMdNK08OKy9YPtvYRYXg0VMcGwCcc/UPgCKNb9hhV/xW+SZrqEl+G3d+1GfzIjHVckKNUCcrJfTvIhvXfUFzf99G5tdrCeLrHgZPJByIkXj3O/XL5z9WOWgwa85mgh/gaIWdzt9GBpHkAZjgBBwLAy6O5vPXu1ghQmyxgFodVkVtwrEIC9bshhss/g4llYmx/vpByFb1Oe39mDOrWhnJoBWv4au7eDIg90bSqqoqS7r4klxZT7jAJkA3qnlSQ0Nm+ qpiZoIjR EEhIMsuMbxFlwqKPQOo1YBTkipWRew+qqFD6XcuolVrMmmevcFJSWD9pcSKcE6gz9qwMHYGsizpMbyfIysTl1PocZm2iIBJxrhNbWUVuNRE0NB88ceXBrOvQKka2SsCwxH6ljnt6gBuWvzpggg6bidve6Y7nQwteP0t3qx2EGvtlywjdP9qYZZRqeBfLlxFAh2mBuwv/1+289GfPTWXwhQuatRvkg/QNKkP17/yjtSZO8jHT9ws8kA+NOS15ezXFAe6FnIeQfEJkNv1HZbnMudieLrA== 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 Tue, Apr 08, 2025 at 08:22:47AM -0700, Dave Hansen wrote: > Are there any tests for folio_test_pgtable() at free_page() time? If we > had that, it would make it less likely that another free_page() user > could sneak in without calling the destructor. It's hidden, but yes: static inline bool page_expected_state(struct page *page, unsigned long check_flags) { if (unlikely(atomic_read(&page->_mapcount) != -1)) return false; PageTable uses page_type which aliases with mapcount, so this check covers "PageTable is still set when the last refcount to it is put". I don't think we really use the page refcount when allocating/freeing page tables. Anyone want to try switching it over to using alloc_frozen_pages() / free_frozen_pages()? Might need to move that API out of mm/internal.h ...