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 5BE78C021AA for ; Tue, 18 Feb 2025 17:06:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C822C28015E; Tue, 18 Feb 2025 12:06:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C320828015D; Tue, 18 Feb 2025 12:06:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B20DF28015E; Tue, 18 Feb 2025 12:06:45 -0500 (EST) 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 3E83028015D for ; Tue, 18 Feb 2025 12:06:45 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 63D201C6A98 for ; Tue, 18 Feb 2025 17:06:44 +0000 (UTC) X-FDA: 83133694728.06.3943C7D Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf27.hostedemail.com (Postfix) with ESMTP id 92A3540020 for ; Tue, 18 Feb 2025 17:06:41 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=LWsZYxLw; spf=none (imf27.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=1739898402; 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=9hy7D4lXck0JMXuwDNv/ayTqn9sb236P26uPki4bGys=; b=0KKTPu7C8GocIXY0INzmL148Jq7sh5lvY+1smAgHnxzLnYgbERFlESTEt6kl1ZGNOPGzM9 0ABl0/wPDhSsNOhJ/EAOgfZGQQHHpUsHLd4TJNT1dtAhj0RlWIqLmqRpfIDxwGkjZinFJn 60ffhdW9ZEulziGt8p7B8WEuLS8+MGs= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=LWsZYxLw; spf=none (imf27.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=1739898402; a=rsa-sha256; cv=none; b=Hjfr+s4o0n7IrA5bbkiw+NlOsHBApIeqZxTilqAcsSw7X1fgSAHekUWY/rYgtlGRVjV9Vv eeAMVJeiYh/eGNkhqtoq7S4yGh332jr6EpUzl5EwioJiHig0qoPoJlnL13bC0l3bKVd2LZ pbs4dOYOO+iOD5xYFRJS6ewrvlUuI4k= 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=9hy7D4lXck0JMXuwDNv/ayTqn9sb236P26uPki4bGys=; b=LWsZYxLwr4+Ph4Uz9Qv2fQmhiU V8qiO7S3WT217jOSvW0lhI9LpXKrcwZOM06+tjwwMhOeoVpCoMdIQA9DO8c/ARLRFHdXwaCao64Gc 0+OhNhlqNdt05UtXSKMz1nnQcYHQDuuGzpj+SRtsC+mdTJS4V/RuYZ0bRiLKTpDTQ3t7wqIyGYbux SGBbpBZ/PMwUanq05+noL/j2Ct5d1MALfYTOjTSse/wVbBRN4mRzwlyg9JcvWZXML99DW/xt/a2r7 ZT5DkvhXhxhnRlJTMi/789+ogpaLyqSd/6bjyWwx8OVrpu2XyZlJlj4HbvWgFArqygd7YCL0kZHtG 161YexWA==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tkR3O-00000003MNz-3Cxq; Tue, 18 Feb 2025 17:06:38 +0000 Date: Tue, 18 Feb 2025 17:06:38 +0000 From: Matthew Wilcox To: Alexander Gordeev Cc: linux-mm@kvack.org, linux-arch@vger.kernel.org, x86@kernel.org, linux-s390@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org Subject: Re: [PATCH 1/7] mm: Set the pte dirty if the folio is already dirty Message-ID: References: <20250217190836.435039-1-willy@infradead.org> <20250217190836.435039-2-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 92A3540020 X-Stat-Signature: mnd9q7qdqzqz5eqxh8buquiaq4ngbrae X-Rspam-User: X-HE-Tag: 1739898401-448654 X-HE-Meta: U2FsdGVkX1967bTUta5mR2FrGcBVkHB9w65zkB5FuIOsnv965S+tmxFW3cXw4j4CcVhKUXYM0A+/jYpzIgx/QNvWmA78GdAek3YlMn2argKzMB9fJ4b81e31HXDYBR+B0UE59cNyACxPbuTZthb0NygcY3i1M8aypE6e2UzLJ4DROXYzUTTbQRQwSrd5kbZcw5ExTsVpe2r/dhfrL/2m3rhS3LFYGwcaGcXxbLU71ya5ujvZ6JkvVMNDpTIy/YtI5jl6hRcmxGxpwfGtKeaYKse6bXzFx9aAfIiSyjcBP2I4VbFeffOIBq9jZ0hYRxpuTeHdyAu4VIQ+7VNlQWXDyart1OI3LK8Vk3Hj1w/QbDqEnpWjQx8A/mkXNMfeIlXv4bjCzb+qhCqgi3Zppc4caU9W+U71lYIUtJBss24MVPrltgeQgdT6eBobyxXynWE6eg7CsuelmfAm9mKvUaq2aaQ8gHWGeUrN4JGpIHihb/hboZjzaUt9F3uv2zn+Xz+ZI6mXjuRV58aKxhu8PHhqMk9Gao0UhHV1xUca6u7JLPYBmJ0QTeC23iLEZao7VpOBtra02QGWas/w1JtRl5xIwaod4ziBvGpQ3MOOp73nc8NYDW5Ct15IOndyIQc02jvcqqSvxL+Z7SrxCw9HO/J3kliEue/CI9xscpCB8yUxYfSAyLDozptTHuo14Vv/HkiHzGoBAdbhOnh6rnaodT3zP+wrAiPmlOMAqaxLNz0Z7L0bhlkXFC0YKEYNnc3ZTwGIlkKOukmx57VsvD2dSkND/ZAJOUmrDnqlrpAffxoRAXQVvk5kwowZyocsu6aHEI3Keob0osNLgIhRkgeTiaN3egbqv8ZEHv2mn8dK6WYv8Zk5GOx0o033xE3UYX6SwViwsDYCp7gtqxvaJnDFDtaBLa5dVAXKhIAraCKLxPXZZ9Xp+Dd9eC64WyvGjk9vrZYUqqQiON242vtLqQ9Gr2g QajEL1Rf Xiw7klxU1GrQ+hMHXSzbSAW3hex2TRSJZ0fcwrLldrQiT8+TodBKrVwq7oL4J1NNqLl5voYDjxuze12WauH+a5nx77XAHtNGHEG9LDGnhf2PFNBRNRJT/c24wt2dEmrXe2wckbMniF8V/urOf8I90Qte0NL1cAVnXaFRgdXDlFm01sbpl1cVY5M58F4iAkoxpBThb3YhTUbMnnBZDJr7/6bqRe9PTM6tmMkGp 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, Feb 18, 2025 at 05:20:28PM +0100, Alexander Gordeev wrote: > > +++ b/arch/s390/include/asm/pgtable.h > > @@ -1451,12 +1451,7 @@ static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot) > > > > static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) > > { > > - unsigned long physpage = page_to_phys(page); > > - pte_t __pte = mk_pte_phys(physpage, pgprot); > > - > > - if (pte_write(__pte) && PageDirty(page)) > > - __pte = pte_mkdirty(__pte); > > - return __pte; > > + return mk_pte_phys(page_to_phys(page), pgprot); > > } > > With the above the implicit dirtifying of hugetlb PTEs (as result of > mk_huge_pte() -> mk_pte()) in make_huge_pte() is removed: > > static pte_t make_huge_pte(struct vm_area_struct *vma, struct page *page, > bool try_mkwrite) > { > ... > if (try_mkwrite && (vma->vm_flags & VM_WRITE)) { > entry = huge_pte_mkwrite(huge_pte_mkdirty(mk_huge_pte(page, > vma->vm_page_prot))); > } else { > entry = huge_pte_wrprotect(mk_huge_pte(page, > vma->vm_page_prot)); > } Took me a moment to spot how this was getting invoked; for anyone else playing along, it's mk_huge_pte() which calls mk_pte(). But I'm not sure how you lose out on the PTE being marked dirty. In the first arm that you've quoted, the pte is made dirty anyway. In the second arm, it's being writeprotected, so marking it dirty isn't a helpful thing to do because writing to it will cause a fault anyway? I know s390 is a little different, so there's probably something I'm missing.