Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Apr 2025 12:30:55 -0500
From:      Doug Moore <unkadoug@gmail.com>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   Re: git: 4568f5a286a2 - main - kern_kcov: replace vm_page_next() with iterator
Message-ID:  <854342c4-0bcf-45c7-874f-8e5388d16f09@freebsd.org>
In-Reply-To: <202504181724.53IHOOHC010885@gitrepo.freebsd.org>
References:  <202504181724.53IHOOHC010885@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------7ZyFIGUXlhTJX41dsmdrxWpp
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

An unfortunate copy/paste error.  Make that

Differential Revision:https://reviews.freebsd.org/D49889

On 4/18/25 12:24, Doug Moore wrote:

> The branch main has been updated by dougm:
>
> URL:https://cgit.FreeBSD.org/src/commit/?id=4568f5a286a212fcceaf9a9bb90eabc104829f49
>
> commit 4568f5a286a212fcceaf9a9bb90eabc104829f49
> Author:     Doug Moore<dougm@FreeBSD.org>
> AuthorDate: 2025-04-18 17:18:00 +0000
> Commit:     Doug Moore<dougm@FreeBSD.org>
> CommitDate: 2025-04-18 17:24:04 +0000
>
>      kern_kcov: replace vm_page_next() with iterator
>      
>      Use VM_RADIX_FORALL, and drop a use of vm_page_next(), in kcov_free().
>      
>      Reviewed by:    kib
>      Differential Revision:  kern_kcov: replace vm_page_next() with iterator
> ---
>   sys/kern/kern_kcov.c | 9 ++++-----
>   1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/sys/kern/kern_kcov.c b/sys/kern/kern_kcov.c
> index 19d35a1ad961..1c1d924b8b79 100644
> --- a/sys/kern/kern_kcov.c
> +++ b/sys/kern/kern_kcov.c
> @@ -396,20 +396,19 @@ kcov_alloc(struct kcov_info *info, size_t entries)
>   static void
>   kcov_free(struct kcov_info *info)
>   {
> +	struct pctrie_iter pages;
>   	vm_page_t m;
> -	size_t i;
>   
>   	if (info->kvaddr != 0) {
>   		pmap_qremove(info->kvaddr, info->bufsize / PAGE_SIZE);
>   		kva_free(info->kvaddr, info->bufsize);
>   	}
>   	if (info->bufobj != NULL) {
> +		vm_page_iter_limit_init(&pages, info->bufobj,
> +		    info->bufsize / PAGE_SIZE);
>   		VM_OBJECT_WLOCK(info->bufobj);
> -		m = vm_page_lookup(info->bufobj, 0);
> -		for (i = 0; i < info->bufsize / PAGE_SIZE; i++) {
> +		VM_RADIX_FORALL(m, &pages)
>   			vm_page_unwire_noq(m);
> -			m = vm_page_next(m);
> -		}
>   		VM_OBJECT_WUNLOCK(info->bufobj);
>   		vm_object_deallocate(info->bufobj);
>   	}
--------------7ZyFIGUXlhTJX41dsmdrxWpp
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>An unfortunate copy/paste error.  Make that</p>
    <pre wrap="" class="moz-quote-pre">Differential Revision: <a class="moz-txt-link-freetext" href="https://reviews.freebsd.org/D49889">https://reviews.freebsd.org/D49889</a>;

<span style="white-space: normal">On 4/18/25 12:24, Doug Moore wrote:</span></pre>
    <blockquote type="cite"
      cite="mid:202504181724.53IHOOHC010885@gitrepo.freebsd.org">
      <pre wrap="" class="moz-quote-pre">The branch main has been updated by dougm:

URL: <a class="moz-txt-link-freetext" href="https://cgit.FreeBSD.org/src/commit/?id=4568f5a286a212fcceaf9a9bb90eabc104829f49">https://cgit.FreeBSD.org/src/commit/?id=4568f5a286a212fcceaf9a9bb90eabc104829f49</a>;

commit 4568f5a286a212fcceaf9a9bb90eabc104829f49
Author:     Doug Moore <a class="moz-txt-link-rfc2396E" href="mailto:dougm@FreeBSD.org">&lt;dougm@FreeBSD.org&gt;</a>
AuthorDate: 2025-04-18 17:18:00 +0000
Commit:     Doug Moore <a class="moz-txt-link-rfc2396E" href="mailto:dougm@FreeBSD.org">&lt;dougm@FreeBSD.org&gt;</a>
CommitDate: 2025-04-18 17:24:04 +0000

    kern_kcov: replace vm_page_next() with iterator
    
    Use VM_RADIX_FORALL, and drop a use of vm_page_next(), in kcov_free().
    
    Reviewed by:    kib
    Differential Revision:  kern_kcov: replace vm_page_next() with iterator
---
 sys/kern/kern_kcov.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/sys/kern/kern_kcov.c b/sys/kern/kern_kcov.c
index 19d35a1ad961..1c1d924b8b79 100644
--- a/sys/kern/kern_kcov.c
+++ b/sys/kern/kern_kcov.c
@@ -396,20 +396,19 @@ kcov_alloc(struct kcov_info *info, size_t entries)
 static void
 kcov_free(struct kcov_info *info)
 {
+	struct pctrie_iter pages;
 	vm_page_t m;
-	size_t i;
 
 	if (info-&gt;kvaddr != 0) {
 		pmap_qremove(info-&gt;kvaddr, info-&gt;bufsize / PAGE_SIZE);
 		kva_free(info-&gt;kvaddr, info-&gt;bufsize);
 	}
 	if (info-&gt;bufobj != NULL) {
+		vm_page_iter_limit_init(&amp;pages, info-&gt;bufobj,
+		    info-&gt;bufsize / PAGE_SIZE);
 		VM_OBJECT_WLOCK(info-&gt;bufobj);
-		m = vm_page_lookup(info-&gt;bufobj, 0);
-		for (i = 0; i &lt; info-&gt;bufsize / PAGE_SIZE; i++) {
+		VM_RADIX_FORALL(m, &amp;pages)
 			vm_page_unwire_noq(m);
-			m = vm_page_next(m);
-		}
 		VM_OBJECT_WUNLOCK(info-&gt;bufobj);
 		vm_object_deallocate(info-&gt;bufobj);
 	}
</pre>
    </blockquote>
  </body>
</html>

--------------7ZyFIGUXlhTJX41dsmdrxWpp--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?854342c4-0bcf-45c7-874f-8e5388d16f09>