Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Aug 2012 15:08:19 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r239194 - head/sys/kern
Message-ID:  <201208111508.q7BF8Jjp069271@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Sat Aug 11 15:08:19 2012
New Revision: 239194
URL: http://svn.freebsd.org/changeset/base/239194

Log:
  Allow idle threads to steal second threads from other cores on systems with
  8 or more cores to improve utilization.  None of my tests on 2xXeon (2x6x2)
  system shown any slowdown from mentioned "excess thrashing".  Same time in
  pbzip2 test with number of threads more then number of CPUs I see up to 10%
  speedup with SMT disabled and up 5% with SMT enabled.  Thinking about
  trashing I was trying to limit that stealing within same last level cache,
  but got only worse results.  Present code any way prefers to steal threads
  from topologically closer cores.
  
  Sponsored by:	iXsystems, Inc.

Modified:
  head/sys/kern/sched_ule.c

Modified: head/sys/kern/sched_ule.c
==============================================================================
--- head/sys/kern/sched_ule.c	Sat Aug 11 12:07:24 2012	(r239193)
+++ head/sys/kern/sched_ule.c	Sat Aug 11 15:08:19 2012	(r239194)
@@ -1403,12 +1403,6 @@ sched_initticks(void *dummy)
 	 * what realstathz is.
 	 */
 	balance_interval = realstathz;
-	/*
-	 * Set steal thresh to roughly log2(mp_ncpu) but no greater than 4. 
-	 * This prevents excess thrashing on large machines and excess idle 
-	 * on smaller machines.
-	 */
-	steal_thresh = min(fls(mp_ncpus) - 1, 3);
 	affinity = SCHED_AFFINITY_DEFAULT;
 #endif
 	if (sched_idlespinthresh < 0)



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