From owner-freebsd-hackers@FreeBSD.ORG Fri Apr 11 14:14:12 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C230737B40C; Fri, 11 Apr 2003 14:14:12 -0700 (PDT) Received: from cirb503493.alcatel.com.au (c18609.belrs1.nsw.optusnet.com.au [210.49.80.204]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9EAB243F85; Fri, 11 Apr 2003 14:14:10 -0700 (PDT) (envelope-from peterjeremy@optushome.com.au) Received: from cirb503493.alcatel.com.au (localhost.alcatel.com.au [127.0.0.1])h3BLE4M2051160; Sat, 12 Apr 2003 07:14:08 +1000 (EST) (envelope-from jeremyp@cirb503493.alcatel.com.au) Received: (from jeremyp@localhost) by cirb503493.alcatel.com.au (8.12.8/8.12.8/Submit) id h3BLE0uo051159; Sat, 12 Apr 2003 07:14:00 +1000 (EST) Date: Sat, 12 Apr 2003 07:13:59 +1000 From: Peter Jeremy To: Terry Lambert Message-ID: <20030411211359.GC31752@cirb503493.alcatel.com.au> References: <20030411060823.GA27575@titan.klemm.apsfilter.org> <20030411080102.GC47320@cirb503493.alcatel.com.au> <3E96E5AE.548EBC6@mindspring.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3E96E5AE.548EBC6@mindspring.com> User-Agent: Mutt/1.4.1i cc: freebsd-hackers@freebsd.org Subject: Re: Solaris 2.x compat. system accounting, sarcheck for fbsd(commercial) X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Apr 2003 21:14:13 -0000 ["Wait for I/O" state] On Fri, Apr 11, 2003 at 08:56:30AM -0700, Terry Lambert wrote: >The intent is to say "I would be running some process X, but I'm >idle because I'm waiting for I/O". Virtually every non-running Unix process is waiting for some sort of I/O - be it an incoming network connection or a keypress. It therefore makes more sense to restrict this state to mean that a process is either involuntarily waiting (eg a page fault has occurred) or it's waiting on filesystem I/O (since there's no way for a process to determine whether a particular I/O request to a file will cause the process to block). AFAIK, SysV accumulates "wait for I/O" when it is unable to schedule any process and at least one process is in this "involuntarily blocked" state. >Part of the problem in reporting this in FreeBSD is the inability >to attribute pending I/O requests e.g. as the result of a fault >by a process or as a result of a fault by the kernel itself. I'm not sure that this matters. In either case, the process does not want to block. If it is blocked then it represents a situation which the system administrator may be able to mitigate (throw more hardware at the problem or alter file distribution across available spindles). If your system is doing a CVSup or buildworld then any idle time is wait for I/O. In a webserver or database server (for example), FreeBSD doesn't have any way to differentiate between CPU idle because there are no outstanding requests and CPU idle because all of the outstanding requests are blocked waiting for file I/O. Peter