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 1F366C4345F for ; Tue, 30 Apr 2024 17:58:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A3FA76B00B5; Tue, 30 Apr 2024 13:58:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9EFF66B00B6; Tue, 30 Apr 2024 13:58:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8B7BE6B00B7; Tue, 30 Apr 2024 13:58:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 6CC756B00B5 for ; Tue, 30 Apr 2024 13:58:03 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 365E91C0F89 for ; Tue, 30 Apr 2024 17:58:03 +0000 (UTC) X-FDA: 82066956846.26.D100F55 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf03.hostedemail.com (Postfix) with ESMTP id 17ABA20007 for ; Tue, 30 Apr 2024 17:58:00 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf03.hostedemail.com: domain of cmarinas@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1714499881; 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; bh=tqgUh1elBIVyrj4Hw2oKmYVwb+olCnEXADSxtbZU/Is=; b=rq5dTZ8HnYQ2YJqMXOJEvTHdyqWXd5dbRs9J+mnamMvzrLBdXguXbxD0md1jlJeX2IMWPy zA9lr1F2zDbzx6mh/XT9dEhFz6+RjU3/ycgtZ2WFT2C+0HqXZyK2oOW2J4XbmDVJ6YQ/4A iWCIRbxKQtSJVU+ytQynH+EIaQbgcvs= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none); spf=pass (imf03.hostedemail.com: domain of cmarinas@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=cmarinas@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714499881; a=rsa-sha256; cv=none; b=A7teK5iN4aBKF3OnFi3wFlo6JIg5XxYrPzo88VIIPiLMaePL4MrjaQSgltC/pG9tWTaxbq qOokNGS+gzY8g6ypXsPNZyN3GijVe/ScucGzc9GtC0DC6vds9wrB64qgGG3Lx2TTdoXBjq XbqKAPnGJEKhlAJIv1tSKl2cLDIRjTo= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 87847CE114D; Tue, 30 Apr 2024 17:57:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 81E97C2BBFC; Tue, 30 Apr 2024 17:57:54 +0000 (UTC) From: Catalin Marinas To: Will Deacon , Mark Rutland , Anshuman Khandual , Andrew Morton , Zi Yan , "Aneesh Kumar K.V" , Ryan Roberts Cc: linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH v2] arm64/mm: pmd_mkinvalid() must handle swap pmds Date: Tue, 30 Apr 2024 18:57:52 +0100 Message-Id: <171449974870.639201.3165060270571039049.b4-ty@arm.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240430133138.732088-1-ryan.roberts@arm.com> References: <20240430133138.732088-1-ryan.roberts@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 17ABA20007 X-Stat-Signature: rermaiqfqyffgiy7ctpyswxnppn6i4yn X-Rspam-User: X-HE-Tag: 1714499880-64122 X-HE-Meta: U2FsdGVkX18gJVoE+Lwr76446v8FaQINDAe3CrTCjtTssQpkJC17v/pgbhz0ObaIn1FIuUBNSZ9rqXzc8VfPfdX0SIc7aCkLEDLIuEfA+ECo8bSBbw0HVwbyULKQxF9cw0bTxIJGJ1oLm2+9RQ7jcfBu7Vnyab7jpGs6JBkdR65T6efPHqpo84M4MZy4YcSnmzqh98eeuHTleJjSVpxCzK/ubVsq2MbhAejC2ri8V42RQuFh4tQQ2ZNg+bpfj8Q0FacSrdJbDSL4D3cyN6cDy67/wPQcGs20OVFnqfVq1+mNBWy/m8dPGSgt5EF0skHSJu+zvGyIYUA1DucFGWOE4OmFK+E2o48xjrQk8IC26WnxjvsqhgWQwC8ZwJvNmpxXTd5NPXJZ7hFBpdwPQY89R7EZgLpNQt1x7A5+sRZJnnElX/uBt60PsYm/HAbwOxa8xN1ZGFWrLAYLGmsvUSTkiYu4hPDA+25g3IpFHqklyXdEsbBQKAz/b0DWFKa3NRWc6elMRO/jA2XxTe/64f42GWghN2wgXn+Sxm7wssp0DuVTTY70AGjnBfSr5jjlAz8Ah7AhzGXK6PWDZ8gplZkecMGFNpGTcuOFygmkV+T49dcnXPzPT6cVeP1HMVVXGDBpLN6CtxTSfobB6fLigKCbgmUdKYeEacj3lXDTfVHYxivgvCkutJOPzvTyZJ+InWmqI8S1zAx6FsCjP2qFIXUGpe1M0DGRbwVRV9VG43fmLpOvJvikY11QCNy+CsOemcQFYZwn5zLvLjUQpMWwC9fkJyIVC07BaBjJ9LscQ5U5LqIlAmGEEtf5alLdK+PPT522+eVEAD7TAyeetgkp0QmgkCUsLGc/MxDD4GRb5/FEg/ydrMaaa1tGg5sE5Sbb7B+Sx4TiXalvKfz3DiUrqRNFSPN7xlA2K4jL43kO3j39ECYSUa57+SFUFbCdD/hRknPYflB5lDhGZPiShJQSlbQ vSi6Em4J dPiVmxgPqeQr9TS1tKKER4Qnanw784MxOAx3t610XLWXEjr7iQPaniPP+8HDnGtAz0T5XrKN1oHTlx/w0Q4VVYmqLO2RZekv7TevLYFdXNPFzUWnX2UZnLhY2ZHlX/XJZdkI8mGQOMq1kfm91L+syP7dG8Eld4hXzJNaJA9zJS3KDbxNCTDLnjrkyH+oCxq0/GKd7mq7M3hAvVrXYaDK3z6CvKpU9JKUa7dZvmLRAHkSYfem4+Cjvir9jken156npptUDBBDDVyZIpW3jm4zlCiSZuWAoDT6yh7CVliLCOSFHSzZI6P/lWlYw7UP4PbuPHGs2DZJ3/aw1VC8y93bcP7z9muzFZrY3X+PHxAHXA49sXCy0KrxMf7mY6BWCxIicNKuNxQSN47kBry+yTTQ00TopCkUwPUtEFZTJ 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, 30 Apr 2024 14:31:38 +0100, Ryan Roberts wrote: > __split_huge_pmd_locked() can be called for a present THP, devmap or > (non-present) migration entry. It calls pmdp_invalidate() > unconditionally on the pmdp and only determines if it is present or not > based on the returned old pmd. > > But arm64's pmd_mkinvalid(), called by pmdp_invalidate(), > unconditionally sets the PMD_PRESENT_INVALID flag, which causes future > pmd_present() calls to return true - even for a swap pmd. Therefore any > lockless pgtable walker could see the migration entry pmd in this state > and start interpretting the fields (e.g. pmd_pfn()) as if it were > present, leading to BadThings (TM). GUP-fast appears to be one such > lockless pgtable walker. > > [...] Applied to arm64 (for-next/fixes), thanks! It should land in 6.9-rc7. I removed the debug/test code, please send it as a separate patch for 6.10. [1/1] arm64/mm: pmd_mkinvalid() must handle swap pmds https://git.kernel.org/arm64/c/e783331c7720 -- Catalin