From owner-freebsd-current@FreeBSD.ORG Mon Jun 16 23:45:22 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 346F837B401 for ; Mon, 16 Jun 2003 23:45:22 -0700 (PDT) Received: from mail.chesapeake.net (chesapeake.net [208.142.252.6]) by mx1.FreeBSD.org (Postfix) with ESMTP id C620243F85 for ; Mon, 16 Jun 2003 23:45:18 -0700 (PDT) (envelope-from jroberson@chesapeake.net) Received: from localhost (jroberson@localhost) by mail.chesapeake.net (8.11.6/8.11.6) with ESMTP id h5H6jIL53130 for ; Tue, 17 Jun 2003 02:45:18 -0400 (EDT) (envelope-from jroberson@chesapeake.net) Date: Tue, 17 Jun 2003 02:45:18 -0400 (EDT) From: Jeff Roberson To: current@freebsd.org Message-ID: <20030617024059.Y36168-100000@mail.chesapeake.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Subject: cvs commit: src/sys/kern sched_ule.c (fwd) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 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: Tue, 17 Jun 2003 06:45:22 -0000 My last few commits, including this one, went a long way towards improving ULE's interactive responsiveness under heavy load. I was just able to do a make -j32 of my kernel while browsing the web with mozilla and commiting this change. Mozilla, my shell, cvs, etc. were all as responsive as they are on an unloaded system. This is on a 2ghz laptop so your mileage may not be exactly the same. This is a significant improvement over the old state of things. If the interactive perf was chasing you away before, ULE should be much better now. Cheers, Jeff ---------- Forwarded message ---------- Date: Mon, 16 Jun 2003 23:39:51 -0700 (PDT) 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 2003/06/16 23:39:51 PDT FreeBSD src repository Modified files: sys/kern sched_ule.c Log: - Add a new function "sched_interact_update()" that scales back the sleep and run time. - Scale the sleep and run time back via sched_interact_update() in more places. This is to keep the statistic more accurate. - Charge a parent one tick for forking a child. - Add only the run time and not the sleep time to the parents kg when a thread exits. This allows us to give a penalty for having an expensive thread exit but does not give a bonus for having an interactive thread exit. - Change the SLP_RUN_THROTTLE to limit us to 4/5th and not 1/2. - Change the SLP_RUN_MAX to two seconds. This keeps bursty interactive applications like mozilla and openoffice in the interactive range even through expensive tasks. - Recalculate the slice after every sleep. This ensures that once a task has been marked interactive it only has a slice of 1 at the risk of giving tasks that sleep for a very brief period a longer time slice. Revision Changes Path 1.42 +20 -23 src/sys/kern/sched_ule.c