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 86F47C61CE8 for ; Thu, 12 Jun 2025 17:36:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8C78B6B0092; Thu, 12 Jun 2025 13:36:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 86BFD6B009D; Thu, 12 Jun 2025 13:36:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5375F6B0092; Thu, 12 Jun 2025 13:36:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 0A5A46B0098 for ; Thu, 12 Jun 2025 13:36:26 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id A1A2ABFC49 for ; Thu, 12 Jun 2025 17:36:25 +0000 (UTC) X-FDA: 83547452730.26.2EBF13E Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by imf19.hostedemail.com (Postfix) with ESMTP id 171341A0006 for ; Thu, 12 Jun 2025 17:36:22 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=qzApvk7S; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf19.hostedemail.com: domain of agordeev@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=agordeev@linux.ibm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749749783; a=rsa-sha256; cv=none; b=7aXw5UltBWNt3uze26EvrpufEEbj4K7H/UBC7et0wZ/Baj/CBc20v9uMyFSlm54Z7z5wWv OioF4k2viO0iFRIdmHCp12UaGXildhoBEM7KBXL9DNAt0CtXx0ySzSUPyRpvKMGE+kFSal V38fDT4vhZMrW+0W5onPLLVCI95SJmk= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=qzApvk7S; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf19.hostedemail.com: domain of agordeev@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=agordeev@linux.ibm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749749783; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=QpzxDfFD94KWII9K+6HadLtwTM81QAZAX1ucAb3kQ9o=; b=zN0HUIrhlEFM70AG43r7X2TOv4+TqFLG7zgYXLNflx4PttdI4PDPsVNEB/bNkLveo5VB7c D3EAr1EQGQjFlBZOAKSnj9mM/dmRTGgtU7yS+jlZl3Xbu6EYoFhO1NpE6nKsu/H7IM7DEk j8kYCTiyg/zhOL/goHzbv0r1QyhU13w= Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55CBGWVP017713; Thu, 12 Jun 2025 17:36:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=QpzxDfFD94KWII9K+ 6HadLtwTM81QAZAX1ucAb3kQ9o=; b=qzApvk7S2hlxQl1Bn2Btpu10ZAllpo5Ln KoZtJ5Dc5ebsGHYL7NJYxYDOAJV+QiKhNPjGUzyi5/p4smraFWFFpufSpMGzAkSs ijMES3tEQCL80ZymilIYQDcLGmaNEIE8zYtWSd1n3DnwRCmSMWFFrnWXVIMOvcU4 3FTlbLfkovMjrogcNOJQy/OWjWG8T3XeFB0lZLwFpm4+bdXr+w/UwmyypaAsne2r gAzSFTJPL3eValXHYUhK4dMMnMvOe2n9ysA28sfKgF+EgtHkCd2WJoBbECxNmdyG yGLdYwa2Z/ZiCy8108YXetwWubfWr/782ZiXt2qPAO1hZCRLEMGhQ== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 474dv7v8mc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 12 Jun 2025 17:36:18 +0000 (GMT) Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 55CHUNNC007629; Thu, 12 Jun 2025 17:36:17 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 474dv7v8m4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 12 Jun 2025 17:36:17 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 55CENRRG027927; Thu, 12 Jun 2025 17:36:16 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 47518mnu86-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 12 Jun 2025 17:36:16 +0000 Received: from smtpav03.fra02v.mail.ibm.com (smtpav03.fra02v.mail.ibm.com [10.20.54.102]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 55CHaE0J13173194 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 Jun 2025 17:36:14 GMT Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id F41CA20043; Thu, 12 Jun 2025 17:36:13 +0000 (GMT) Received: from smtpav03.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E0ED420040; Thu, 12 Jun 2025 17:36:13 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9]) by smtpav03.fra02v.mail.ibm.com (Postfix) with ESMTPS; Thu, 12 Jun 2025 17:36:13 +0000 (GMT) Received: by tuxmaker.boeblingen.de.ibm.com (Postfix, from userid 55669) id A255BE19B9; Thu, 12 Jun 2025 19:36:13 +0200 (CEST) From: Alexander Gordeev To: Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, sparclinux@vger.kernel.org, xen-devel@lists.xenproject.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, Hugh Dickins , Nicholas Piggin , Guenter Roeck , Juergen Gross , Jeremy Fitzhardinge , Ryan Roberts Subject: [PATCH 3/6] mm/debug: Detect wrong arch_enter_lazy_mmu_mode() contexts Date: Thu, 12 Jun 2025 19:36:10 +0200 Message-ID: <2d516308df177f169e3e158687852bf91c95c427.1749747752.git.agordeev@linux.ibm.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 9voeh4bv5cl5bR8-1UbklMpr0vy5aE9k X-Proofpoint-GUID: 9Au_5T7dJBReJY8qjL4lDoqAoOEk9nHN X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjEyMDEzMiBTYWx0ZWRfXwvHzXkw1Ghwo VTWHN+cE0QcyT8/988a5Oy+uAOazKG7OlmsNXf6ZvKU2OyjqEb00Sa9h8VlU6IHLn1MggoDaL63 J4VspSDKrq2+1hsiPGGebKrNx1EbL+82psEcU80PFvDCmekkqaZ0vPpe50F3A5EaUR4LmuwQ/0/ 5epCz7Ptq9XMUYKeq1zKwhT+tfKcNQIo5OBB6gHBUbG+j6+i6nLPuvYTfHveUXDpsZodJnk3zhE dYIyrVXtl4+cv0sSN2VcggnidQvKiNBmeIRb1oZr2g8ApheWzI/LFgHDf9f1hikiirl+WDTTu2o hrO0CgP9O7GbjWJ1Qv5gnL+YaCYVb0XAW2qQksVnQpXkvM1+8blus9YJd/GZULoBxkCwuh7NK+D rogA/0jqvGwDi1VvpGA1UI8O2sBoSl5dajC9s32rmbJOY1rQ4pEeWsPUoLCQb5SieKUycFW4 X-Authority-Analysis: v=2.4 cv=CfMI5Krl c=1 sm=1 tr=0 ts=684b1013 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=6IFa9wvqVegA:10 a=pGLkceISAAAA:8 a=VnNF1IyMAAAA:8 a=RJXGA7rP2o630YCXQOwA:9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-12_10,2025-06-12_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 spamscore=0 phishscore=0 priorityscore=1501 clxscore=1011 impostorscore=0 mlxscore=0 suspectscore=0 mlxlogscore=914 adultscore=0 malwarescore=0 lowpriorityscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506120132 X-Rspamd-Server: rspam01 X-Stat-Signature: bo51fntphwxdi8igrmrzqqewhcrim8h4 X-Rspamd-Queue-Id: 171341A0006 X-Rspam-User: X-HE-Tag: 1749749782-695127 X-HE-Meta: U2FsdGVkX19TVp86+2Qyt/RS8gKN2HRRUIXPX8MTMqhYsj/9hX6tYPAL9d6xff3rYNPcik9Dqpq20HU6WqVeL9aJQw+/MzPTNaFfNClcAuzS6RCiEs1edlUwWFftLL+4Se0+DGRj1jpPB9+9DWK74P+ntOVmSgN4G7QxZ190xl5Sb1Lo1PEalPs31VtTT08N5L8kHOmis91XRIwkwLzWX6od0tgipNart3/HmPN7fy8QfpvcFcpuFGl2bNDImO9easEl+L0KrFUv6GHLaqH6ECTkx3JFadaqa40VGgtvqhvZX1j+okapzkdZKrRo+4kQr7HBU5gS5nYsDbY+OIVu2BE4h34LC7fulG1GgmzGpHC0s3pZ3PiaN/bM3xCCjJ4wCd5jmNbxCAvJGulEX3JUSqpoKJx7jFw8/xk/7guWx9A+5K3W1bWHcSJjQgX2dED9yXq17Pu3GEU6frcbmiUFE+gSOQEj6Il4kfIaypfFiCrC7ZiEW8l8GO4klhCbeFeHJ/6Vgq7wmqDa/X8xnQO2VGIhSzT9vjtmcANcYi6frVhmNDsu70os6hdrHS29ICBPfqD5A9bN0U0uwI4cRnwYr6H1ocpFNp/MNyXgQKrf3KR0v3bZytHmsLx+2OLXFQtL4GDMntaPXgtaP8GuDViAin8hKN3HDfGT1+O5INEj/p9/iTQCxIN51iFEoLHdc6mizzgsHZSzPVz9HxxLi8WYLYnJqToYZQLEkdX7HguNFIs09aVmIYj6i12PRB88c2oY+DJOh7QT2kl88gljjOHOJYvZfgdlL8z+/CYP2NICzS+wcd4bgEeM9dlI4CThGwzJ4xLpCBPn1oMKTTj0l4SaCYUoX0XzGsI4HXwGHKdfAmLznO+ROhBF4mKBSDeGFVRfDeJ95bjJ0FlW6wH8VpQ7cWT6XSNtEe8TwFKdAYLuMwUKVgFBDQSAsI9z41qsLmRj16vmpizFzCy9zWbdQuG 8e65oBpO XPlm6Rhz2H+VsAMPlldXpX5ZJQ90ZNWhX/HhHQFghP+eCDBc3xhnJSyLxAxcqNsWNEYRAj8T+wppOMzcUxsN+AtvCjN4O/34f6DcLs8k+aHqncCBogjUASeF9pKo9IA+xuLCbubzd2bg1b2sFvRFxoGa5KWKxgwQj7JJhFfZ97rNFq9P9pCxIouztBeQmNpiyZtZuOiEMFQ0Vkadkys56IX3VvN23rUaYk5YwWfC2N96I2EJdeIU/x1v6OYNy75eHP1aXAlZCVOXYPYH1tOfVRx60wQ== 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: Make default arch_enter|leave|flush_lazy_mmu_mode() callbacks complain on enabled preemption to detect wrong contexts. That could help to prevent the complicated lazy MMU mode semantics misuse, such like one that was solved with commit b9ef323ea168 ("powerpc/64s: Disable preemption in hash lazy mmu mode"). Skip fully preemptible kernels, since in such case taking the page table lock does not disable preemption, so the described check would be wrong. Most platforms do not implement the lazy MMU mode callbacks, so to aovid a performance impact allow the complaint when CONFIG_DEBUG_VM option is enabled only. Reviewed-by: Nicholas Piggin Signed-off-by: Alexander Gordeev --- include/linux/pgtable.h | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h index 33bf2b13c219..0cb8abdc58a8 100644 --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -232,9 +232,23 @@ static inline int pmd_dirty(pmd_t pmd) * Nesting is not permitted and the mode cannot be used in interrupt context. */ #ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE -#define arch_enter_lazy_mmu_mode() do {} while (0) -#define arch_leave_lazy_mmu_mode() do {} while (0) -#define arch_flush_lazy_mmu_mode() do {} while (0) +static inline void arch_enter_lazy_mmu_mode(void) +{ + if (!IS_ENABLED(CONFIG_PREEMPT_RT)) + VM_WARN_ON_ONCE(preemptible()); +} + +static inline void arch_leave_lazy_mmu_mode(void) +{ + if (!IS_ENABLED(CONFIG_PREEMPT_RT)) + VM_WARN_ON_ONCE(preemptible()); +} + +static inline void arch_flush_lazy_mmu_mode(void) +{ + if (!IS_ENABLED(CONFIG_PREEMPT_RT)) + VM_WARN_ON_ONCE(preemptible()); +} #endif #ifndef pte_batch_hint -- 2.48.1