From: "Matthew Wilcox (Oracle)" <willy@infradead.org> To: linux-mm@kvack.org, linux-arch@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>, linux-kernel@vger.kernel.org, Richard Weinberger <richard@nod.at>, Anton Ivanov <anton.ivanov@cambridgegreys.com>, Johannes Berg <johannes@sipsolutions.net>, linux-um@lists.infradead.org Subject: [PATCH v3 25/34] um: Implement the new page table range API Date: Tue, 28 Feb 2023 21:37:28 +0000 [thread overview] Message-ID: <20230228213738.272178-26-willy@infradead.org> (raw) In-Reply-To: <20230228213738.272178-1-willy@infradead.org> Add set_ptes() and update_mmu_cache_range(). Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Richard Weinberger <richard@nod.at> Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com> Cc: Johannes Berg <johannes@sipsolutions.net> Cc: linux-um@lists.infradead.org --- arch/um/include/asm/pgtable.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/arch/um/include/asm/pgtable.h b/arch/um/include/asm/pgtable.h index a70d1618eb35..ca78c90ae74f 100644 --- a/arch/um/include/asm/pgtable.h +++ b/arch/um/include/asm/pgtable.h @@ -242,12 +242,20 @@ static inline void set_pte(pte_t *pteptr, pte_t pteval) if(pte_present(*pteptr)) *pteptr = pte_mknewprot(*pteptr); } -static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, - pte_t *pteptr, pte_t pteval) +static inline void set_ptes(struct mm_struct *mm, unsigned long addr, + pte_t *ptep, pte_t pte, unsigned int nr) { - set_pte(pteptr, pteval); + for (;;) { + set_pte(ptep, pte); + if (--nr == 0) + break; + ptep++; + pte_val(pte) += PAGE_SIZE; + } } +#define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1) + #define __HAVE_ARCH_PTE_SAME static inline int pte_same(pte_t pte_a, pte_t pte_b) { @@ -290,6 +298,7 @@ struct mm_struct; extern pte_t *virt_to_pte(struct mm_struct *mm, unsigned long addr); #define update_mmu_cache(vma,address,ptep) do {} while (0) +#define update_mmu_cache_range(vma, address, ptep, nr) do {} while (0) /* * Encode/decode swap entries and swap PTEs. Swap PTEs are all PTEs that -- 2.39.1
WARNING: multiple messages have this Message-ID (diff)
From: "Matthew Wilcox (Oracle)" <willy@infradead.org> To: linux-mm@kvack.org, linux-arch@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>, linux-kernel@vger.kernel.org, Richard Weinberger <richard@nod.at>, Anton Ivanov <anton.ivanov@cambridgegreys.com>, Johannes Berg <johannes@sipsolutions.net>, linux-um@lists.infradead.org Subject: [PATCH v3 25/34] um: Implement the new page table range API Date: Tue, 28 Feb 2023 21:37:28 +0000 [thread overview] Message-ID: <20230228213738.272178-26-willy@infradead.org> (raw) In-Reply-To: <20230228213738.272178-1-willy@infradead.org> Add set_ptes() and update_mmu_cache_range(). Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Richard Weinberger <richard@nod.at> Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com> Cc: Johannes Berg <johannes@sipsolutions.net> Cc: linux-um@lists.infradead.org --- arch/um/include/asm/pgtable.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/arch/um/include/asm/pgtable.h b/arch/um/include/asm/pgtable.h index a70d1618eb35..ca78c90ae74f 100644 --- a/arch/um/include/asm/pgtable.h +++ b/arch/um/include/asm/pgtable.h @@ -242,12 +242,20 @@ static inline void set_pte(pte_t *pteptr, pte_t pteval) if(pte_present(*pteptr)) *pteptr = pte_mknewprot(*pteptr); } -static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, - pte_t *pteptr, pte_t pteval) +static inline void set_ptes(struct mm_struct *mm, unsigned long addr, + pte_t *ptep, pte_t pte, unsigned int nr) { - set_pte(pteptr, pteval); + for (;;) { + set_pte(ptep, pte); + if (--nr == 0) + break; + ptep++; + pte_val(pte) += PAGE_SIZE; + } } +#define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1) + #define __HAVE_ARCH_PTE_SAME static inline int pte_same(pte_t pte_a, pte_t pte_b) { @@ -290,6 +298,7 @@ struct mm_struct; extern pte_t *virt_to_pte(struct mm_struct *mm, unsigned long addr); #define update_mmu_cache(vma,address,ptep) do {} while (0) +#define update_mmu_cache_range(vma, address, ptep, nr) do {} while (0) /* * Encode/decode swap entries and swap PTEs. Swap PTEs are all PTEs that -- 2.39.1 _______________________________________________ linux-um mailing list linux-um@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-um
next prev parent reply other threads:[~2023-02-28 21:39 UTC|newest] Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-02-28 21:37 [PATCH v3 00/34] New page table range API Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 01/34] mm: Convert page_table_check_pte_set() to page_table_check_ptes_set() Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 02/34] mm: Add generic flush_icache_pages() and documentation Matthew Wilcox (Oracle) 2023-03-15 9:27 ` Mike Rapoport 2023-02-28 21:37 ` [PATCH v3 03/34] mm: Add folio_flush_mapping() Matthew Wilcox (Oracle) 2023-03-03 10:33 ` Mike Rapoport 2023-02-28 21:37 ` [PATCH v3 04/34] mm: Remove ARCH_IMPLEMENTS_FLUSH_DCACHE_FOLIO Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 05/34] alpha: Implement the new page table range API Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 06/34] arc: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 07/34] arm: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 08/34] arm64: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` Matthew Wilcox (Oracle) 2023-03-09 11:03 ` Ryan Roberts 2023-03-09 11:03 ` Ryan Roberts 2023-02-28 21:37 ` [PATCH v3 09/34] csky: " Matthew Wilcox (Oracle) 2023-03-03 11:40 ` Mike Rapoport 2023-02-28 21:37 ` [PATCH v3 10/34] hexagon: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 11/34] ia64: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` Matthew Wilcox (Oracle) 2023-03-03 11:56 ` Mike Rapoport 2023-03-03 11:56 ` Mike Rapoport 2023-03-03 14:36 ` Matthew Wilcox 2023-03-03 14:36 ` Matthew Wilcox 2023-02-28 21:37 ` [PATCH v3 12/34] loongarch: " Matthew Wilcox (Oracle) 2023-03-01 2:04 ` WANG Xuerui 2023-02-28 21:37 ` [PATCH v3 13/34] m68k: " Matthew Wilcox (Oracle) 2023-03-05 10:16 ` Geert Uytterhoeven 2023-03-05 15:28 ` Matthew Wilcox 2023-03-05 16:48 ` Geert Uytterhoeven 2023-03-05 20:44 ` Michael Schmitz 2023-03-06 7:21 ` Geert Uytterhoeven 2023-03-06 23:01 ` Michael Schmitz 2023-02-28 21:37 ` [PATCH v3 14/34] microblaze: " Matthew Wilcox (Oracle) 2023-03-03 10:53 ` Mike Rapoport 2023-03-03 14:38 ` Matthew Wilcox 2023-02-28 21:37 ` [PATCH v3 15/34] mips: " Matthew Wilcox (Oracle) 2023-03-03 12:24 ` Mike Rapoport 2023-02-28 21:37 ` [PATCH v3 16/34] nios2: " Matthew Wilcox (Oracle) 2023-03-03 12:49 ` Mike Rapoport 2023-02-28 21:37 ` [PATCH v3 17/34] openrisc: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 18/34] parisc: " Matthew Wilcox (Oracle) 2023-03-02 16:43 ` John David Anglin 2023-03-02 20:40 ` John David Anglin 2023-03-04 16:27 ` John David Anglin 2023-02-28 21:37 ` [PATCH v3 19/34] powerpc: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 20/34] riscv: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` Matthew Wilcox (Oracle) 2023-03-15 5:23 ` Palmer Dabbelt 2023-03-15 5:23 ` Palmer Dabbelt 2023-02-28 21:37 ` [PATCH v3 21/34] s390: " Matthew Wilcox (Oracle) 2023-03-02 13:31 ` Gerald Schaefer 2023-02-28 21:37 ` [PATCH v3 22/34] superh: " Matthew Wilcox (Oracle) 2023-03-01 8:06 ` Geert Uytterhoeven 2023-03-01 16:17 ` Matthew Wilcox 2023-02-28 21:37 ` [PATCH v3 23/34] sparc32: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 24/34] sparc64: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` Matthew Wilcox (Oracle) [this message] 2023-02-28 21:37 ` [PATCH v3 25/34] um: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 26/34] x86: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 27/34] xtensa: " Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 28/34] mm: Remove page_mapping_file() Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 29/34] mm: Rationalise flush_icache_pages() and flush_icache_page() Matthew Wilcox (Oracle) 2023-03-05 9:53 ` Geert Uytterhoeven 2023-02-28 21:37 ` [PATCH v3 30/34] mm: Use flush_icache_pages() in do_set_pmd() Matthew Wilcox (Oracle) 2023-03-03 14:02 ` Mike Rapoport 2023-03-03 16:02 ` Matthew Wilcox 2023-02-28 21:37 ` [PATCH v3 31/34] filemap: Add filemap_map_folio_range() Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 32/34] rmap: add folio_add_file_rmap_range() Matthew Wilcox (Oracle) 2023-03-01 3:04 ` Yin, Fengwei 2023-02-28 21:37 ` [PATCH v3 33/34] mm: Convert do_set_pte() to set_pte_range() Matthew Wilcox (Oracle) 2023-02-28 21:37 ` [PATCH v3 34/34] filemap: Batch PTE mappings Matthew Wilcox (Oracle) 2023-03-03 14:19 ` [PATCH v3 00/34] New page table range API Mike Rapoport 2023-03-05 10:15 ` Geert Uytterhoeven 2023-03-09 11:09 ` Ryan Roberts
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20230228213738.272178-26-willy@infradead.org \ --to=willy@infradead.org \ --cc=anton.ivanov@cambridgegreys.com \ --cc=johannes@sipsolutions.net \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=linux-um@lists.infradead.org \ --cc=richard@nod.at \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.