svn commit: r286623 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Alexander Motin mav at FreeBSD.org
Tue Aug 11 09:18:52 UTC 2015


Author: mav
Date: Tue Aug 11 09:18:51 2015
New Revision: 286623
URL: https://svnweb.freebsd.org/changeset/base/286623

Log:
  Remove extra lock, that IMO only creates potential problems now.

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Tue Aug 11 09:00:27 2015	(r286622)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c	Tue Aug 11 09:18:51 2015	(r286623)
@@ -4773,7 +4773,6 @@ arc_tempreserve_space(uint64_t reserve, 
 	return (0);
 }
 
-static kmutex_t arc_lowmem_lock;
 #ifdef _KERNEL
 static eventhandler_tag arc_event_lowmem = NULL;
 
@@ -4781,8 +4780,6 @@ static void
 arc_lowmem(void *arg __unused, int howto __unused)
 {
 
-	/* Serialize access via arc_lowmem_lock. */
-	mutex_enter(&arc_lowmem_lock);
 	mutex_enter(&arc_reclaim_thr_lock);
 	needfree = 1;
 	DTRACE_PROBE(arc__needfree);
@@ -4793,12 +4790,9 @@ arc_lowmem(void *arg __unused, int howto
 	 * here from ARC itself and may hold ARC locks and thus risk a deadlock
 	 * with ARC reclaim thread.
 	 */
-	if (curproc == pageproc) {
-		while (needfree)
-			msleep(&needfree, &arc_reclaim_thr_lock, 0, "zfs:lowmem", 0);
-	}
+	if (curproc == pageproc)
+		msleep(&needfree, &arc_reclaim_thr_lock, 0, "zfs:lowmem", 0);
 	mutex_exit(&arc_reclaim_thr_lock);
-	mutex_exit(&arc_lowmem_lock);
 }
 #endif
 
@@ -4809,7 +4803,6 @@ arc_init(void)
 
 	mutex_init(&arc_reclaim_thr_lock, NULL, MUTEX_DEFAULT, NULL);
 	cv_init(&arc_reclaim_thr_cv, NULL, CV_DEFAULT, NULL);
-	mutex_init(&arc_lowmem_lock, NULL, MUTEX_DEFAULT, NULL);
 
 	/* Convert seconds to clock ticks */
 	arc_min_prefetch_lifespan = 1 * hz;
@@ -5049,7 +5042,6 @@ arc_fini(void)
 
 	ASSERT0(arc_loaned_bytes);
 
-	mutex_destroy(&arc_lowmem_lock);
 #ifdef _KERNEL
 	if (arc_event_lowmem != NULL)
 		EVENTHANDLER_DEREGISTER(vm_lowmem, arc_event_lowmem);


More information about the svn-src-head mailing list