From owner-freebsd-current@FreeBSD.ORG Sun Mar 2 08:38:01 2008 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EBF82106567E for ; Sun, 2 Mar 2008 08:38:01 +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 B3F938FC1A for ; Sun, 2 Mar 2008 08:38:01 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from [192.168.1.107] (cpe-24-94-75-93.hawaii.res.rr.com [24.94.75.93]) (authenticated bits=0) by webaccess-cl.virtdom.com (8.13.6/8.13.6) with ESMTP id m228bxKc019694 for ; Sun, 2 Mar 2008 03:38:00 -0500 (EST) (envelope-from jroberson@chesapeake.net) Date: Sat, 1 Mar 2008 22:40:08 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: current@freebsd.org Message-ID: <20080301223444.F920@desktop> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Subject: HEADS UP: new cpuset and scheduler topology code. 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: Sun, 02 Mar 2008 08:38:02 -0000 Starting with ULE revision 1.226 support is available for cpusets and more advanced cpu topology. As announced earlier, cpusets are a way to manage the cpus a thread or process is allowed to run on. All processes in the system are assigned to a cpuset, by default set 1. You may modify the cpus that participate in this set, create new sets, and move processes between sets. Individual threads and processes may further refine the cpus they are allowed to run on with a per-thread mask that is a subset of the set the thread is assigned to. A manpage is forthcoming, for now you may experiment with and try to decipher the incredibly cryptic 'cpuset' program I also committed. The improved CPU topology code is aware of which cores share packages, caches, system bus/memory links, which are hyper-threaded, etc. This allows the scheduler to more intelligently place threads by improving affinity information and by load balancing across these resources. Many programs should run faster on dual and quadcore machines but there is still some tuning to do. If you notice a workload is now significantly faster or slower please report it to me. Thanks, Jeff