svn commit: r254439 - head/sys/vm

Konstantin Belousov kib at FreeBSD.org
Sat Aug 17 07:10:02 UTC 2013


Author: kib
Date: Sat Aug 17 07:10:01 2013
New Revision: 254439
URL: http://svnweb.freebsd.org/changeset/base/254439

Log:
  Remove the arbitrary binding of the pagedaemon threads to the domains,
  update the comment accordingly and make it more precise.
  
  Requested and reviewed by:	jeff (previous version)

Modified:
  head/sys/vm/vm_pageout.c

Modified: head/sys/vm/vm_pageout.c
==============================================================================
--- head/sys/vm/vm_pageout.c	Sat Aug 17 06:29:45 2013	(r254438)
+++ head/sys/vm/vm_pageout.c	Sat Aug 17 07:10:01 2013	(r254439)
@@ -1575,35 +1575,16 @@ static void
 vm_pageout_worker(void *arg)
 {
 	struct vm_domain *domain;
-	struct pcpu *pc;
-	int cpu, domidx;
+	int domidx;
 
 	domidx = (uintptr_t)arg;
 	domain = &vm_dom[domidx];
 
 	/*
-	 * XXXKIB The bind is rather arbitrary.  With some minor
-	 * complications, we could assign the cpuset consisting of all
-	 * CPUs in the same domain.  In fact, it even does not matter
-	 * if the CPU we bind to is in the affinity domain of this
-	 * page queue, we only need to establish the fair distribution
-	 * of pagedaemon threads among CPUs.
-	 *
-	 * XXXKIB It would be useful to allocate vm_pages for the
-	 * domain from the domain, and put pcpu area into the page
-	 * owned by the domain.
+	 * XXXKIB It could be useful to bind pageout daemon threads to
+	 * the cores belonging to the domain, from which vm_page_array
+	 * is allocated.
 	 */
-	if (mem_affinity != NULL) {
-		CPU_FOREACH(cpu) {
-			pc = pcpu_find(cpu);
-			if (pc->pc_domain == domidx) {
-				thread_lock(curthread);
-				sched_bind(curthread, cpu);
-				thread_unlock(curthread);
-				break;
-			}
-		}
-	}
 
 	KASSERT(domain->vmd_segs != 0, ("domain without segments"));
 	vm_pageout_init_marker(&domain->vmd_marker, PQ_INACTIVE);


More information about the svn-src-head mailing list