From owner-svn-src-head@FreeBSD.ORG Sat Aug 11 15:08:20 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5C30E106566B; Sat, 11 Aug 2012 15:08:20 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 468438FC14; Sat, 11 Aug 2012 15:08:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q7BF8JR6069273; Sat, 11 Aug 2012 15:08:19 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q7BF8Jjp069271; Sat, 11 Aug 2012 15:08:19 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201208111508.q7BF8Jjp069271@svn.freebsd.org> From: Alexander Motin Date: Sat, 11 Aug 2012 15:08:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r239194 - head/sys/kern X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Aug 2012 15:08:20 -0000 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)