From owner-freebsd-current@FreeBSD.ORG Wed May 28 12:20:38 2014 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id DF936532; Wed, 28 May 2014 12:20:38 +0000 (UTC) Received: from pacha.mail.dyslexicfish.net (space.mail.dyslexicfish.net [91.109.5.35]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7B39A2FBA; Wed, 28 May 2014 12:20:37 +0000 (UTC) Received: from catnip.dyslexicfish.net (space.mail.dyslexicfish.net [91.109.5.35]) by pacha.mail.dyslexicfish.net (8.14.5/8.14.5) with ESMTP id s4SCKZ3g023547; Wed, 28 May 2014 13:20:35 +0100 (BST) (envelope-from jamie@catnip.dyslexicfish.net) Received: (from jamie@localhost) by catnip.dyslexicfish.net (8.14.5/8.14.5/Submit) id s4SCKZcn023546; Wed, 28 May 2014 13:20:35 +0100 (BST) (envelope-from jamie) From: Jamie Landeg-Jones Message-Id: <201405281220.s4SCKZcn023546@catnip.dyslexicfish.net> Date: Wed, 28 May 2014 13:20:35 +0100 To: jhb@freebsd.org, emaste@freebsd.org Subject: Re: Change top's notion of idle processes / threads References: <201405231605.26312.jhb@freebsd.org> <201405271637.23332.jhb@freebsd.org> In-Reply-To: <201405271637.23332.jhb@freebsd.org> User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (pacha.mail.dyslexicfish.net [91.109.5.35]); Wed, 28 May 2014 13:20:35 +0100 (BST) Cc: freebsd-current@freebsd.org X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.18 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, 28 May 2014 12:20:39 -0000 John, the changes are good. The "'trickling' but still not idle" processes now show up as they should. However, it has exposed one quirk in the display: Sorting is done by WCPU followed by total processor time. Processes which aren't idle (but are using so little cpu it shows as 0.00%) show below processes which are truely idle, but have totaled more processor time overall. This is more noticable with your new patch, as toggling between idle-only and full now shows processes appearing higher in the list than some which only appear in the non-idle view! Ideally, processes where cpu "is virtually 0.00% but really a smidgen higher" should be display higher. I realise the pctcpu granularity is at fault here. Basically, what I'm saying is that truely idle processes should appear below other processes reporting 0.00% cpu. In other words, what I'm asking is: shouldn't the cpu sort priority not simply be keyed on 'ki_pctcpu', but on a primary key based on "if cur->ki_runtime == old->ki_runtime ?" followed by secondary key ki_pctcpu. Or even easier, shouldn't simply sorting on (cur->ki_runtime - old->ki_runtime) suffice? Is this a valid point, and if it is, is it practical, and/or easy enough to achieve? I'll even have a stab at it myself tomorrow, after hopefully getting some sleep (32 hours without sleep - sorry for incoherency - insomnia is a PITA) Cheers, Jamie