From owner-freebsd-stable@FreeBSD.ORG Wed Aug 7 15:10:02 2013 Return-Path: Delivered-To: freebsd-stable@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 ESMTP id 3218EAD6; Wed, 7 Aug 2013 15:10:02 +0000 (UTC) (envelope-from eric@vangyzen.net) Received: from aussmtpmrkps320.us.dell.com (aussmtpmrkps320.us.dell.com [143.166.224.254]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D7B7F220D; Wed, 7 Aug 2013 15:10:01 +0000 (UTC) X-Loopcount0: from 64.238.244.148 X-IronPort-AV: E=Sophos;i="4.89,833,1367989200"; d="scan'208,217";a="37736128" Message-ID: <52026347.9030005@vangyzen.net> Date: Wed, 7 Aug 2013 10:09:59 -0500 From: Eric van Gyzen User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130702 Thunderbird/17.0.7 MIME-Version: 1.0 To: Andriy Gapon Subject: Re: unexpected idprio 31 behavior on 9.2-BETA2 and 9.2-RC1 References: <1375737316.96778.10.camel@firkin.mischler.com> <52020EAF.6000301@FreeBSD.org> In-Reply-To: <52020EAF.6000301@FreeBSD.org> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: freebsd-stable@FreeBSD.org, dave@mischler.com X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Aug 2013 15:10:02 -0000 On 08/07/2013 04:09, Andriy Gapon wrote: > on 06/08/2013 00:15 Dave Mischler said the following: >> I have an i5-2500 machine 8GB RAM now running 9.2-RC1 amd64 with the >> GENERIC kernel. Today, while still running 9.2-BETA2, I updated my >> source tree and started building world with idprio 31 and I looked back >> a while later and all the CPU cores and disk were essentially idle, and >> hardly any progress had been made on the build. I stopped and restarted >> the build without the idle priority setting and it ran fine. Anybody >> else seen any of this? Anybody know about any fairly recent changes that >> might account for it? >> >> I did a "rm -rf /usr/src /usr/obj" and loaded a new source tree before >> going to RC1. I still see odd behavior at RC1. Sometimes it works just >> like it should (i.e. compute bound processes use most/all of the >> available CPU time), but a lot of the time both the CPU and disk are >> idle (e.g. CPU 97.8% idle, disk 1% busy per systat). I don't think I >> ever saw this behavior before while running "make buildworld -j4". Can >> anyone else confirm/rebut my findings? Thanks. > Are you sure that you really want to use idprio for a goal you want to achieve? > If yes, are you sure that you want to use idprio 31 specifically? > With sched_ule idprio 31 is equivalent to priority of a completely idle system. > So the scheduler is in its right to run the idle ("do nothing") thread instead > of your thread(s). That sounds like a bug to me, or a POLA violation at least. A user thread should never have the same priority as the idle threads, because a user thread, by definition, has work to do. >From the rtprio(1) examples: To make depend while not disturbing other machine usage: idprio 31 make depend > P.S. > https://wiki.freebsd.org/AvgThreadPriorityRanges Nice! Thank you for writing it and sending the link. Eric