Thread (80 messages) 80 messages, 4 authors, 2024-02-13

Re: [PATCH v5 21/25] arm64/mm: Implement new [get_and_]clear_full_ptes() batch APIs

From: Mark Rutland <mark.rutland@arm.com>
Date: 2024-02-13 16:53:08
Also in: linux-arm-kernel, linux-mm, lkml

On Tue, Feb 13, 2024 at 04:48:50PM +0000, Ryan Roberts wrote:
On 13/02/2024 16:43, Mark Rutland wrote:
quoted
On Fri, Feb 02, 2024 at 08:07:52AM +0000, Ryan Roberts wrote:
quoted
quoted
+static inline void __clear_full_ptes(struct mm_struct *mm, unsigned long addr,
+				pte_t *ptep, unsigned int nr, int full)
+{
+	for (;;) {
+		__ptep_get_and_clear(mm, addr, ptep);
+		if (--nr == 0)
+			break;
+		ptep++;
+		addr += PAGE_SIZE;
+	}
+}
The loop construct is a bit odd; can't this be:
I found it a little odd at first, but its avoiding the ptep and addr increments
the last time through the loop. Its the preferred pattern for these functions in
core-mm. See default set_ptes(), wrprotect_ptes(), clear_full_ptes() in
include/linux/pgtable.h.

So I'd prefer to leave it as is so that we match them. What do you think?
That's fair enough; it I'm happy with it as-is.

Mark.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help