From owner-freebsd-current@FreeBSD.ORG Wed Jul 18 01:28:33 2007 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 57B4A16A400 for ; Wed, 18 Jul 2007 01:28:33 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from webaccess-cl.virtdom.com (webaccess-cl.virtdom.com [216.240.101.25]) by mx1.freebsd.org (Postfix) with ESMTP id 2682C13C49D for ; Wed, 18 Jul 2007 01:28:33 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from [192.168.1.101] (c-71-231-138-78.hsd1.or.comcast.net [71.231.138.78]) (authenticated bits=0) by webaccess-cl.virtdom.com (8.13.6/8.13.6) with ESMTP id l6I1SUkk017551 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO) for ; Tue, 17 Jul 2007 21:28:32 -0400 (EDT) (envelope-from jroberson@chesapeake.net) Date: Tue, 17 Jul 2007 18:31:37 -0700 (PDT) From: Jeff Roberson X-X-Sender: jroberson@10.0.0.1 To: current@freebsd.org Message-ID: <20070717182819.L92541@10.0.0.1> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Subject: cvs commit: src/sys/kern sched_ule.c (fwd) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Jul 2007 01:28:33 -0000 Thanks everyone for your help. In summary it sounds like there are two issues. 1) kqemu explicitly uses sched_lock. I'll see if I can contact the author about fixing this. 2) As much as a 6-7% slowdown on buildworld on dual core machines as compared to 4BSD. I'm not sure if I'm going to do anything about this. Once you get to 4 or 8 cores and -j8 or more they even out with ULE having significantly less system time. I don't know if I want to compromise that for slightly better dual core compile times. This is in the tree for 7.0 now though. I'm very excited to see this happen. Thanks again, Jeff ---------- Forwarded message ---------- Date: Tue, 17 Jul 2007 22:53:24 +0000 (UTC) From: Jeff Roberson To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern sched_ule.c jeff 2007-07-17 22:53:24 UTC FreeBSD src repository Modified files: sys/kern sched_ule.c Log: ULE 3.0: Fine grain scheduler locking and affinity improvements. This has been in development for over 6 months as SCHED_SMP. - Implement one spin lock per thread-queue. Threads assigned to a run-queue point to this lock via td_lock. - Improve the facility for assigning threads to CPUs now that sched_lock contention no longer dominates scheduling decisions on larger SMP machines. - Re-write idle time stealing in an attempt to make it less damaging to general performance. This is still disabled by default. See kern.sched.steal_idle. - Call the long-term load balancer from a callout rather than sched_clock() so there are no locks held. This is disabled by default. See kern.sched.balance. - Parameterize many scheduling decisions via sysctls. Try to document these via sysctl descriptions. - General structural and naming cleanups. - Document each function with comments. Tested by: current@ amd64, x86, UP, SMP. Approved by: re Revision Changes Path 1.200 +917 -549 src/sys/kern/sched_ule.c