Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Jul 2002 13:30:59 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 14157 for review
Message-ID:  <200207122030.g6CKUxB2098293@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://people.freebsd.org/~peter/p4db/chv.cgi?CH=14157

Change 14157 by peter@peter_xeon on 2002/07/12 13:30:38

	set P_NOLOAD so that we do not skew the loadav calculation. This isn't real load.
	Alan says we theoretically do not need Giant since the free page queue is fully
	locked down now.  Lets find out. :-)

Affected files ...

.. //depot/projects/pmap/sys/vm/vm_zeroidle.c#5 edit

Differences ...

==== //depot/projects/pmap/sys/vm/vm_zeroidle.c#5 (text+ko) ====

@@ -74,7 +74,6 @@
 	static int free_rover;
 	vm_page_t m;
 
-	mtx_lock(&Giant);
 	mtx_lock_spin(&vm_page_queue_free_mtx);
 	zero_state = 0;
 	m = vm_pageq_find(PQ_FREE, free_rover, FALSE);
@@ -83,9 +82,7 @@
 		TAILQ_REMOVE(&vm_page_queues[m->queue].pl, m, pageq);
 		m->queue = PQ_NONE;
 		mtx_unlock_spin(&vm_page_queue_free_mtx);
-		mtx_unlock(&Giant);
 		pmap_zero_page_idle(m);
-		mtx_lock(&Giant);
 		mtx_lock_spin(&vm_page_queue_free_mtx);
 		vm_page_flag_set(m, PG_ZERO);
 		m->queue = PQ_FREE + m->pc;
@@ -99,7 +96,6 @@
 	}
 	free_rover = (free_rover + PQ_PRIME2) & PQ_L2_MASK;
 	mtx_unlock_spin(&vm_page_queue_free_mtx);
-	mtx_unlock(&Giant);
 	return 1;
 }
 
@@ -127,6 +123,9 @@
 	rtp_to_pri(&rtp, td->td_ksegrp);
 	pri = td->td_priority;
 	mtx_unlock_spin(&sched_lock);
+	PROC_LOCK(td->td_proc);
+	td->td_proc->p_flag |= P_NOLOAD;
+	PROC_UNLOCK(td->td_proc);
 
 	for (;;) {
 		if (vm_page_zero_check()) {

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207122030.g6CKUxB2098293>