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"><dougm@FreeBSD.org></a> AuthorDate: 2025-04-18 17:18:00 +0000 Commit: Doug Moore <a class="moz-txt-link-rfc2396E" href="mailto:dougm@FreeBSD.org"><dougm@FreeBSD.org></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->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); } </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>