Date: Sat, 28 Jan 2006 20:17:04 GMT From: Alan Cox <alc@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 90567 for review Message-ID: <200601282017.k0SKH4op057645@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=90567 Change 90567 by alc@alc_home on 2006/01/28 20:16:52 Modify vm_pageq_remove() and vm_pageq_remove_nowakeup() to be able to remove cache state pages from the buddy queues. (This is not yet used.) Affected files ... .. //depot/projects/superpages/src/sys/vm/vm_pageq.c#11 edit Differences ... ==== //depot/projects/superpages/src/sys/vm/vm_pageq.c#11 (text+ko) ==== @@ -164,7 +164,11 @@ int queue = VM_PAGE_GETQUEUE(m); struct vpgqueues *pq; - if (queue != PQ_NONE) { + if ((queue - m->buddyq) == PQ_BUDDY) { + buddy_unfree(m); + KASSERT(m->queue == PQ_NONE, ("xxx")); + vm_page_flag_clear(m, PG_CACHE); + } else if (queue != PQ_NONE) { pq = &vm_page_queues[queue]; VM_PAGE_SETQUEUE2(m, PQ_NONE); TAILQ_REMOVE(&pq->pl, m, pageq); @@ -187,7 +191,13 @@ int queue = VM_PAGE_GETQUEUE(m); struct vpgqueues *pq; - if (queue != PQ_NONE) { + if ((queue - m->buddyq) == PQ_BUDDY) { + buddy_unfree(m); + KASSERT(m->queue == PQ_NONE, ("xxx")); + vm_page_flag_clear(m, PG_CACHE); + if (vm_paging_needed()) + pagedaemon_wakeup(); + } else if (queue != PQ_NONE) { VM_PAGE_SETQUEUE2(m, PQ_NONE); pq = &vm_page_queues[queue]; TAILQ_REMOVE(&pq->pl, m, pageq);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200601282017.k0SKH4op057645>
