Author: markj
Date: Sun Jul  7 17:45:17 2019
New Revision: 349812
URL: https://svnweb.freebsd.org/changeset/base/349812

Log:
  MFC r349671:
  Cache the next queue element when traversing a page queue.

Modified:
  stable/12/sys/vm/vm_pageout.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/vm/vm_pageout.c
==============================================================================
--- stable/12/sys/vm/vm_pageout.c       Sun Jul  7 17:43:45 2019        
(r349811)
+++ stable/12/sys/vm/vm_pageout.c       Sun Jul  7 17:45:17 2019        
(r349812)
@@ -265,7 +265,7 @@ static __always_inline void
 vm_pageout_collect_batch(struct scan_state *ss, const bool dequeue)
 {
        struct vm_pagequeue *pq;
-       vm_page_t m, marker;
+       vm_page_t m, marker, n;
 
        marker = ss->marker;
        pq = ss->pq;
@@ -276,7 +276,8 @@ vm_pageout_collect_batch(struct scan_state *ss, const 
        vm_pagequeue_lock(pq);
        for (m = TAILQ_NEXT(marker, plinks.q); m != NULL &&
            ss->scanned < ss->maxscan && ss->bq.bq_cnt < VM_BATCHQUEUE_SIZE;
-           m = TAILQ_NEXT(m, plinks.q), ss->scanned++) {
+           m = n, ss->scanned++) {
+               n = TAILQ_NEXT(m, plinks.q);
                if ((m->flags & PG_MARKER) == 0) {
                        KASSERT((m->aflags & PGA_ENQUEUED) != 0,
                            ("page %p not enqueued", m));
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to