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 D3777C76195 for ; Wed, 15 Mar 2023 05:15:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B1EEE8E000A; Wed, 15 Mar 2023 01:14:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A592A8E0005; Wed, 15 Mar 2023 01:14:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6639D8E0008; Wed, 15 Mar 2023 01:14:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 2C9F78E000B for ; Wed, 15 Mar 2023 01:14:54 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id BC3E8160145 for ; Wed, 15 Mar 2023 05:14:52 +0000 (UTC) X-FDA: 80569968024.01.E86F492 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf13.hostedemail.com (Postfix) with ESMTP id 21E2120013 for ; Wed, 15 Mar 2023 05:14:50 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=aoGMnxNj; spf=none (imf13.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=1678857291; a=rsa-sha256; cv=none; b=5iyMgirqO+V2qbW1FccVzn7nDAKnqhyWQuG6F9KHxbRSXmZ2Slehxhft5ObZXbLDAZSCC3 eVup4qaG7SLu7/pj8bAWYgetQlqNsaGR9S5ct54AoslO+6C96qttsX/DHY1CdUIoSfEH/R Ci66b8Rrju/d87yfQkwI2pAO/9E2dK4= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=aoGMnxNj; spf=none (imf13.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=1678857291; 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=/cEb0Fh1cCHXRm4Z6x+edjUOJMIxZVeD5/H0HnIu8NQ=; b=JaY8yRQw6BvKF3QIEbHVaTvCLSIfn9lH/ynmXjRWOetRtv3BWG64Hug4m9ShECINN4GHAl K33zsZiH98XbXyLAu0oALrV7xTKqnzUVBZQvD7LIUeP88cplPAMOuXg1FAUVojlmNVe4NM 36CpIesEHvoKJcYxW5FaeVSGnUsyxdY= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=/cEb0Fh1cCHXRm4Z6x+edjUOJMIxZVeD5/H0HnIu8NQ=; b=aoGMnxNj6CJ0nsLkjqwsFDXb7C iFVn+nQtirpkE4qoXAj2jv5MTfGfnpFrTukGMy+mVvlfWq2v1UD7fGZgOy5RR7JYm7SH3TKMh/nC0 GXed+5mzaF9nfFRGnpRsz9AIuYGhi11Hm0bNkHLpiGDbwAGJ6DEcD2p4pnOAaSZdiYp2Fanf13Vek 1uZ4EVfnbYvA8uvA8hlgZcPQ1L5c8fafAGcHS49MuqcVsQn8vaOTUIfb1Aukp/FofnRNeR7W3xmGl IPnyDuSguyjfJ7L2y/yl+oTDQVk0y+3G3ArzPosXCI4Qz9Ov9CFL8IqxFk0GJn7Mv6tQPyiggcZHV RPYPknCQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pcJTM-00DYCU-Ut; Wed, 15 Mar 2023 05:14:48 +0000 From: "Matthew Wilcox (Oracle)" To: linux-arch@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Gerald Schaefer , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , linux-s390@vger.kernel.org Subject: [PATCH v4 22/36] s390: Implement the new page table range API Date: Wed, 15 Mar 2023 05:14:30 +0000 Message-Id: <20230315051444.3229621-23-willy@infradead.org> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20230315051444.3229621-1-willy@infradead.org> References: <20230315051444.3229621-1-willy@infradead.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 21E2120013 X-Rspamd-Server: rspam01 X-Stat-Signature: 8woubysy3636oq41ai3ncrsiaazipcq4 X-HE-Tag: 1678857290-323871 X-HE-Meta: U2FsdGVkX19ROoU8kiyMHk7QCM9kh/MMtv9Rz7FcMyAW2aTLVa1+scL8ZKNMrCUrVJWP9CfhjunSvgY6qbrtVoqBXSjWy9HLfHdILkNBoTL3oJNgCoTlVuprag8pBwbtg0vM3iIYNpPvywSQOwHPJyjzRCRikkNvnlTfiITokTZu4KZ407y2mug0jjTTsg9MDVOBBEGNIP/0A0MOm1kRbO0BUu4KqPqRXqZafOi19ve7SjK+rp7hyOTQ3pNoBgX2I9eq8RpCxVbEfcSBKEG5ch2jO6dkejSnXxuNl2/IEOJro8Y88HAXVOcARDXVkz0HPZxaN8nI46PxeMzaw4eAGI76ZtQAAuqvISuX/91yOAKU9i6YwFALQmidgL/tEeo3NxFlpdW2NidT/SXiTFw04yRrLu62wUJEoPZIgQG7KEtk8A+WQ/UPvA8B8pV2fjU+2wZbG1kEwHVo0v4rlXl3veDS/Q6i9vusPBRauHLbobvnEkDReRlfRCE2f/7MKp7j8FKGaIZ30ceEQ5TJokPjVBpwiTOMmxSOp20561mjFoiqbcqZcyyq5JfooZVv0AJ7uOe6rTSMkIJixMcs11Opd9YCoDF+FIn1LSMbmDbKdnwEJOLkONn31xnPSFYqQ81gZAOhaifOYry9a13KG8SeOrVMGr9SCCVhesNZULGWOQcXq59ud1QEUFKKkxP6LHBsEsUplWF3Kd3NO6YSL3mJkmDhn9r/EGG70pL5FfnXvkvnozf5obaHfdWAfkqzVOeiCada1OLONe/QrkW+gD5vMpWajaENgctLw7tnH/WmrpV1nFkt3ySIjn6mIVxzg55Wn07hNaauXxM8jWqsLPlTUf3F/3V9gEmN2QczwmGbb6SH9G+qYcsjt+2KwmJYCWSSB1iw8wZenmX7w/6fgA6bk2aokoQhU+0moi3TZgPgOjpYmzmIz7f8N0AjdoW4kRmteAJp3tUbuBOve/j+Z3x jJuIhTQR zCjmw6W/XD+iz0t1cDhMRO8SG/X6yEsMAUC7Dz7mKY7vUKV8CfWkrYAXL0WOwletilJPD3PZmrsdO7U5b2qdeVA7Da8KdbEhKZ+ilUkGRYKcSjKekGaHoN2aKiZhfWQWMG4eslugiEyMkHWcYJwxZ10/pXy/niitLxhLYPDkL805EPiMLQdTwVVIy0wPTTG431oh8b7Cu5AjuSmAvlJVgvdm+sA92CYApEV5nlO6mjX5H7m5v/IQzZh4+Co69XZp0lfSRgKK0rHrM5l2XiZfcyD/TxA== 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: Add set_ptes() and update_mmu_cache_range(). Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: Gerald Schaefer Cc: Heiko Carstens Cc: Vasily Gorbik Cc: Alexander Gordeev Cc: Christian Borntraeger Cc: Sven Schnelle Cc: linux-s390@vger.kernel.org --- arch/s390/include/asm/pgtable.h | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index c1f6b46ec555..fea678c67e51 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h @@ -50,6 +50,7 @@ void arch_report_meminfo(struct seq_file *m); * tables contain all the necessary information. */ #define update_mmu_cache(vma, address, ptep) do { } while (0) +#define update_mmu_cache_range(vma, addr, ptep, nr) do { } while (0) #define update_mmu_cache_pmd(vma, address, ptep) do { } while (0) /* @@ -1319,20 +1320,34 @@ pgprot_t pgprot_writecombine(pgprot_t prot); pgprot_t pgprot_writethrough(pgprot_t prot); /* - * Certain architectures need to do special things when PTEs - * within a page table are directly modified. Thus, the following - * hook is made available. + * Set multiple PTEs to consecutive pages with a single call. All PTEs + * are within the same folio, PMD and VMA. */ -static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, - pte_t *ptep, pte_t entry) +static inline void set_ptes(struct mm_struct *mm, unsigned long addr, + pte_t *ptep, pte_t entry, unsigned int nr) { if (pte_present(entry)) entry = clear_pte_bit(entry, __pgprot(_PAGE_UNUSED)); - if (mm_has_pgste(mm)) - ptep_set_pte_at(mm, addr, ptep, entry); - else - set_pte(ptep, entry); + if (mm_has_pgste(mm)) { + for (;;) { + ptep_set_pte_at(mm, addr, ptep, entry); + if (--nr == 0) + break; + ptep++; + entry = __pte(pte_val(entry) + PAGE_SIZE); + addr += PAGE_SIZE; + } + } else { + for (;;) { + set_pte(ptep, entry); + if (--nr == 0) + break; + ptep++; + entry = __pte(pte_val(entry) + PAGE_SIZE); + } + } } +#define set_ptes set_ptes /* * Conversion functions: convert a page and protection to a page entry, -- 2.39.2