kernel - skip PG_MARKER vm pages.
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 8 Jul 2010 05:15:05 +0000 (22:15 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 8 Jul 2010 05:15:05 +0000 (22:15 -0700)
* The contigmalloc code was improperly interpreting PG_MARKER
  VM pages, resulting in an infinite blocking condition.

sys/vm/vm_contig.c

index 6a2e90e..a65024d 100644 (file)
@@ -153,6 +153,9 @@ vm_contig_pg_clean(int queue)
                        ("vm_contig_clean: page %p's queue is not %d", 
                        m, queue));
                next = TAILQ_NEXT(m, pageq);
+
+               if (m->flags & PG_MARKER)
+                       continue;
                
                if (vm_page_sleep_busy(m, TRUE, "vpctw0"))
                        return (TRUE);