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 09E7CC61CE8 for ; Sun, 15 Jun 2025 07:33:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7E0796B008A; Sun, 15 Jun 2025 03:33:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7916B6B008C; Sun, 15 Jun 2025 03:33:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6A7CD6B0092; Sun, 15 Jun 2025 03:33:08 -0400 (EDT) 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 5AB016B008A for ; Sun, 15 Jun 2025 03:33:08 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id DABFC1A0780 for ; Sun, 15 Jun 2025 07:33:07 +0000 (UTC) X-FDA: 83556818814.18.6CB9F91 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf28.hostedemail.com (Postfix) with ESMTP id 3612CC0007 for ; Sun, 15 Jun 2025 07:33:04 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=IJuElzMU; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf28.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749972785; 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=AVvYXz6wUvp3En0Ra38+d3WL0JSdDoIIFx/YyoeGpK0=; b=JEZ6SHG/xzJu3kqWxjMJ9evPJoRkY3jAEyQwHeKSF1I2jQ6LjZDeKR8t2TYyvWs1+w7tb2 TXELFTJt32A75qxCzxk02/4+c3VMwn0dhm6OVSuaBr693NeBhowmzv3WgHvvj9qrOEUsny UztDu5I4TGoTFQedtBSZs8u7olfQ7eU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749972785; a=rsa-sha256; cv=none; b=QVeVGE2qYLv48oOc5K6I39h5AgSnbHRtwH8INzr3ph/XrRg2s4/uScLaDvYwxRWbB8FTkV 4EXdL55DxU2FUwg4RwDHMp/nuSODNX5EH0PGm+MHUiLBxlh5CW3jdlMqE4oBvVb64nOVzz k9y1/JYDDJfRcU32OA1/xZFFu9J/udM= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=IJuElzMU; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf28.hostedemail.com: domain of rppt@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=rppt@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 682FF5C4105; Sun, 15 Jun 2025 07:30:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 208D4C4CEE3; Sun, 15 Jun 2025 07:32:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1749972783; bh=ykudC0+no0iilN4butkJwk8mXZbTEnB+zY/KM0JFPEc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=IJuElzMUTv8SfPQxgLvhjHzJ3f9fOBrzL+zteUNVUtl4xBR8FZL2lgfNDLQBXGMQ7 0zUJt93LVEtexmyyc26exBRT/Zznt3xjQXl6o4d4xYLYriKfRdzKIWZ9vEm7lZeqeC 9NSHNEz0c59zdQUgFm9u3ThPQjXn+bSmqIoKhgvSv/OcAwoH/XW4R5nJtW5BMIwJiv TVd8mkbVwEERuR6VGAHcnhdcMVJuxy9C3VUfLcm4dH4PAb499sl/yY/RkpGnI7TROa Aplxjxbgav6cylupbND1LduzSHFqAkZsKqpc6M1gsxOVr0e1Oan/l4lHkxYtI7yc2g ZtNUkhSSPzK7Q== Date: Sun, 15 Jun 2025 10:32:54 +0300 From: Mike Rapoport To: Dev Jain Cc: akpm@linux-foundation.org, david@redhat.com, catalin.marinas@arm.com, will@kernel.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, surenb@google.com, mhocko@suse.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, suzuki.poulose@arm.com, steven.price@arm.com, gshan@redhat.com, linux-arm-kernel@lists.infradead.org, yang@os.amperecomputing.com, ryan.roberts@arm.com, anshuman.khandual@arm.com Subject: Re: [PATCH v3 1/2] arm64: pageattr: Use pagewalk API to change memory permissions Message-ID: References: <20250613134352.65994-1-dev.jain@arm.com> <20250613134352.65994-2-dev.jain@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250613134352.65994-2-dev.jain@arm.com> X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 3612CC0007 X-Stat-Signature: 483k6fpetepzwo45zgd7ttxy3w4ayfmm X-Rspam-User: X-HE-Tag: 1749972784-91287 X-HE-Meta: U2FsdGVkX1/0xexm64pVoo5Qd6u9LUoy9fVoCcycvi6PF5PMrk/2+Gy/GBRliMyYQtjd73f1cVwIoK8kRDjpccWGQ54h3thDNHCv7lCn5EFjzy72p4Iql6C9eqTiQAZ5sT78ZALF3FYRkMBCCCt10ib3Nq3MtUpNecSmQ7MczkEz0N/oCbpfwyConWiZphLsDzgFhYK4egDPVQGBEG1iW+/ZqdSU2z4lGNvmPfCwjKb/tAsdQplWZW/48+28hJUDmMlNBRUszDPeAUEf5E5pROCbK0RqfM6g/p7C/M4XQ2H5KnjEsoGRIZMaIvhDsHtkzRxPq73Vfr6tYNl/iQ1jh/WXL91XjbATiS4RqW7r0hO3wUbvoVTA5sIzaU5P7eNkRRdizNhiCXhBfkYAygF2Fbb26EeLqfqt9KL/6CbnxCqAxdO5n71MMmSdPfApEZjJ6JEup0F20i83Og1iuG8fE0qJwW6XFy1pSapgAx6/9jVo6xz5h94t3561ybfkcmEMBdQmU8XYoVPQTjA3jeAeyhpTdZ3u+tJce4gsSl2nk0GnBBSGB6Rb6vk1fsRNQaZHLFIcEiigVHQV6aBCETtmplwec8Ije/Ek212Dv0mXQBxEBiOB30vunK0RVkkDUKtXWaj5HDWZ2uMYg7HOlr5k5Xj5pGpoV3K+8EgBJjt2tq/ZtgsrBNx4RqKgrup2g2un7tk7MzRpXdMT7dZ9sK+pB+bS07PjuTaSb6Xv/en8wDnNxISkxmc3D/OnJ3xeKCD5wPKfXr6sYj4fRwRHxn6Clf6BPw3BVDD1qaEUUSy8xDPb+Hr43viuX5Ufr327RzYE7z+eqGwyZPVpGztDXXzwHhIbWPaINpjHzE9qRlOsMfijMXJWFZo8qUPXOIxAAH1IjWwIDOptkQKk1xfgS32h+JqkEKxJmpKI6iL8O9c8jJo6ny5Lz6OxII6i6od3C34PmrVXOa0u0LE/ysuRzqr gKngEUau lJs3J9xtGC/J2idu1bB4AY9+OpwkuKoeVmEfYGe3jKWKiiIw8kKOUqORFbQRAouo8DMc4EJ1ApJqaqub6ryu0jBLJSYOnEsUcyd5GOv0B2/xOjvz58kASntbFuiOr9xDrVVz1bXrrpZAtV1jtBjxV5C30mW0ZgruF8ejbSeIl5Z/YPwFoRgpsSdWtr6ZTlg11oo8kIfXA0s/+fMFQ+w7eFbCPVWDFOkfxqZ00yFZRam7g+TZK7a6rkMawl+m2OmlYILBa 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 Fri, Jun 13, 2025 at 07:13:51PM +0530, Dev Jain wrote: > -/* > - * This function assumes that the range is mapped with PAGE_SIZE pages. > - */ > -static int __change_memory_common(unsigned long start, unsigned long size, > +static int ___change_memory_common(unsigned long start, unsigned long size, > pgprot_t set_mask, pgprot_t clear_mask) > { > struct page_change_data data; > @@ -61,9 +140,28 @@ static int __change_memory_common(unsigned long start, unsigned long size, > data.set_mask = set_mask; > data.clear_mask = clear_mask; > > - ret = apply_to_page_range(&init_mm, start, size, change_page_range, > - &data); > + arch_enter_lazy_mmu_mode(); > + > + /* > + * The caller must ensure that the range we are operating on does not > + * partially overlap a block mapping. Any such case should either not > + * exist, or must be eliminated by splitting the mapping - which for > + * kernel mappings can be done only on BBML2 systems. > + * > + */ > + ret = walk_kernel_page_table_range_lockless(start, start + size, > + &pageattr_ops, NULL, &data); x86 has a cpa_lock for set_memory/set_direct_map to ensure that there's on concurrency in kernel page table updates. I think arm64 has to have such lock as well. > + arch_leave_lazy_mmu_mode(); > + > + return ret; > +} -- Sincerely yours, Mike.