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 722D7C77B6F for ; Tue, 11 Apr 2023 14:15:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F19BA900002; Tue, 11 Apr 2023 10:15:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EA43A6B0075; Tue, 11 Apr 2023 10:15:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D4363900002; Tue, 11 Apr 2023 10:15:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id BF28F6B0072 for ; Tue, 11 Apr 2023 10:15:44 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 97CA916045B for ; Tue, 11 Apr 2023 14:15:44 +0000 (UTC) X-FDA: 80669308608.14.7DFC92C Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf13.hostedemail.com (Postfix) with ESMTP id C542920029 for ; Tue, 11 Apr 2023 14:15:41 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=X4qq5JLd; spf=pass (imf13.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681222542; 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=1ElJXvy3GrdCHxap+2OiSZHKtp+/midD3ZXDx5TNtDM=; b=1cwcbXxxgBEVKQRoUzAw+2GSHkH5H8a/3AyfoPWnLASyhdk+KWr3j+N0AZPartpWFwA27k JHJeY1vXuUz/LwI2qUl1T5uK9LGgCCf0azK7qMJtAYHREsCTrRyt3HOn4Hnc6ya3EzNgmt E9NAyRtfT6BTsuBBJiEA4xCEMnnenx0= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=X4qq5JLd; spf=pass (imf13.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681222542; a=rsa-sha256; cv=none; b=pBZHJLvnQ7Au83r48lm5r0RketvLydpQNo2Zr+MmZDxIixi6xltAvlK64kDX2f7Wjh92Qv hs5FvH/kR/pmEHxYoMmQEoMt3hW9A1jD/HFuIKSRPgEKtRG4unpDoiqSXuG+snPICxH2Mo +i3XBL4mMFzMQy6Q0+oI/+V/9HiYgbE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1681222541; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1ElJXvy3GrdCHxap+2OiSZHKtp+/midD3ZXDx5TNtDM=; b=X4qq5JLd6OktImroBCrPR/4DZAraMxROdhaB8cClMWRI6SK072d03mNokoP7ks1Jy7Wo+s YTQ6JznTMokjjIrtaCHM3zNA1f23fnI35get4PbEyPJosyXiZsRdPcZVjG8i1xQoiJCDLY 6iJjxrgC2t5LoPWxCmKqrm+I8UGxj4I= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-671-Cc7KJ7ZfO2-Ud1XmppAT6w-1; Tue, 11 Apr 2023 10:15:37 -0400 X-MC-Unique: Cc7KJ7ZfO2-Ud1XmppAT6w-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id EB9B31C087A3; Tue, 11 Apr 2023 14:15:35 +0000 (UTC) Received: from t480s.redhat.com (unknown [10.39.194.95]) by smtp.corp.redhat.com (Postfix) with ESMTP id E710E400F283; Tue, 11 Apr 2023 14:15:32 +0000 (UTC) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, linux-kselftest@vger.kernel.org, sparclinux@vger.kernel.org, David Hildenbrand , Andrew Morton , "David S. Miller" , Peter Xu , Hugh Dickins , Shuah Khan , Sam Ravnborg , Yu Zhao , Anshuman Khandual Subject: [PATCH v1 0/6] mm: (pte|pmd)_mkdirty() should not unconditionally allow for write access Date: Tue, 11 Apr 2023 16:15:23 +0200 Message-Id: <20230411141529.428991-2-david@redhat.com> In-Reply-To: <20230411141529.428991-1-david@redhat.com> References: <20230411141529.428991-1-david@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: C542920029 X-Rspam-User: X-Stat-Signature: ydmamdqggjujqspc6icjewo546xwbo4g X-HE-Tag: 1681222541-223727 X-HE-Meta: U2FsdGVkX1/oQt5dJQNAksq63fEiukBr9IIQT/EPM+Z31mA3ZAb3b+Zc36rJ9ud0fQ00WsKv5o1JA/b+2JheIAxEVjwhRrcc7VmBC3RH79fUm806w6d6RiET3DX4W5acqFL3gMJUmH7h6CC8Rbl8YzIDUvmizCcQaz9mmTjg8jbNwuf4e6zRPy+p4gNwR0BBQlLGRZyK15NCmncfcMVv7j6lhGiYpYfaNX9vHa/Ax1Uvp6AXOsd/ZlvVM+UpVotxOmnEEBtGxSfTPM5tKnX+PXGQdqj/yhaw9zSXqnMApEPJp6EfA0U5IERi+PeneH0inVheVOakEsm7E62zPlOnm7FGRNpCUUqSgz2NuvdxJ0rNKc8lpzG17NzztjyvAezwsgw0evfgEzb1s0WG9ioWSiPhzD1E3mMOz3mB9CapEUFKzKCpD1Ac+T2q92iFpUotZCVtwcgryYa2lT3rls53wMlQB4Qg89rWFt2WTDm3XTFB8HOMQ6TC+1iOqkO0lEGVxDGsbyfRPQ8dNGIouFySX0J6DWBPZGyU2XDm5XnQbC+w/ri6Jptmg1LXJzFXjf/HFlYGLuI7ChmT/zq/JBVSDAlFSX5wGJ5XFnqfivbM9XcOmbuKOl/er0C0PEwu+5XSLH+1bWBtGKvYSVFCcleGsyNfGpwnNX52v4FlW2qTu89ogMoAi6NLDqJk/egXRXH067RddI/saF2tRS/xKTyzdBjdchhUno45AxonpUrFjqpJnqJwDsFDa618oeg+3mRWFWr4O1x33Emf1Pa8kCQSwxZiGJ7dyuB+huv/Z29YiqGEo6QZF7N7mCdC5T42khhKainB7zjfkGfQYYwEFWc0KniiaeMDF/4qpk61pYrWeRsJdf4ddb1sgEj4Ua7DZnV0vPjTWX6LVSaoxbgrrGtXWan6dYvskEFowYt5nhUSJjjxK0Kih0zGY/ubS0qJotxTDp9PdbOhHmrM8xorLA2 5NqqWfFz dvfwV+ED7jiLjtgDcidSenNHk41LkkIYOTIXSBMcD7Y5IIooo3Ux8lvbWB4nPhaU8HdoHEAnKlt1o4YInQ30qgD8ZWi9V/nA+R+4w0Xq4ZVlpASxEQmdjeiRo21sgsvA4hZEw7FLb2s7Vde6+yjyOU16E/XK+uLAT7ZrkQH2eTPUXshUC4g2GAKAsS0bczCbQ3OO0PGpW63KV/PQch2tEZP35oh1f8dFNVNjGbvcANVlLoutHcA/GKBka0koV1XFaOOdb/E+jgXkXU4Pvx9bFriWXsjwXk0rvdfCBvCwc0Qo8GuZ+XBoyybY2eXxYE42mP/oviaN+/YatKWP239fWmGcz7gaPViaDpXlTpiM7m9ur/Tjf9CMMwhPEj+ELpx16Kg09e2s9/N84K+o61vpqaFeM5alc5+Kdu+4j7S6k76zlrT1yN1xSF70RN2MZ456RRMTu0++KWhNMoAHEvGrwiKwIqgNAVeiu7n/OKsS8VFv1JYhafel20Zoyf+iLjm+fmyf9htJ44AHAisWNL4/mBGas2CBEaPkNMlk13z5IQUJKsgRz83e5hRkfgXak9oiL6tBTYuU5McZXXHpe2ASpNFVqydLjdsAIX+0+4St7mSMKTyj53Vyg02jPZZW0fxwDbuYhJwhhL3Ykbmo= 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: This is the follow-up on [1], adding selftests (testing for known issues we added workarounds for and other issues that haven't been fixed yet), fixing sparc64, reverting the workarounds, and perform one cleanup. The patch from [1] was modified slightly (updated/extended patch description, dropped one unnecessary NOP instruction from the ASM in __pte_mkhwwrite()). Retested on x86_64 and sparc64 (sun4u in QEMU). I scanned most architectures to make sure their (pte|pmd)_mkdirty() handling is correct. To be sure, we can run the selftests and find out if other architectures are still affectes (loongarch was fixed recently as well). Based on master for now. I don't expect surprises regarding mm-tress, but I can rebase if there are any problems. [1] https://lkml.kernel.org/r/20221212130213.136267-1-david@redhat.com Cc: Andrew Morton Cc: "David S. Miller" Cc: Peter Xu Cc: Hugh Dickins Cc: Shuah Khan Cc: Sam Ravnborg Cc: Yu Zhao Cc: Anshuman Khandual David Hildenbrand (6): selftests/mm: reuse read_pmd_pagesize() in COW selftest selftests/mm: mkdirty: test behavior of (pte|pmd)_mkdirty on VMAs without write permissions sparc/mm: don't unconditionally set HW writable bit when setting PTE dirty on 64bit mm/migrate: revert "mm/migrate: fix wrongly apply write bit after mkdirty on sparc64" mm/huge_memory: revert "Partly revert "mm/thp: carry over dirty bit when thp splits on pmd"" mm/huge_memory: conditionally call maybe_mkwrite() and drop pte_wrprotect() in __split_huge_pmd_locked() arch/sparc/include/asm/pgtable_64.h | 116 +++--- mm/huge_memory.c | 16 +- mm/migrate.c | 2 - tools/testing/selftests/mm/Makefile | 2 + tools/testing/selftests/mm/cow.c | 33 +- tools/testing/selftests/mm/khugepaged.c | 4 + tools/testing/selftests/mm/mkdirty.c | 379 ++++++++++++++++++ tools/testing/selftests/mm/soft-dirty.c | 3 + .../selftests/mm/split_huge_page_test.c | 4 + tools/testing/selftests/mm/vm_util.c | 4 +- 10 files changed, 468 insertions(+), 95 deletions(-) create mode 100644 tools/testing/selftests/mm/mkdirty.c -- 2.39.2