From owner-freebsd-hackers@FreeBSD.ORG Mon Apr 9 18:38:11 2012 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E701106566B for ; Mon, 9 Apr 2012 18:38:11 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id 050108FC26 for ; Mon, 9 Apr 2012 18:38:11 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 6A77CB94F; Mon, 9 Apr 2012 14:38:10 -0400 (EDT) From: John Baldwin To: Sushanth Rai Date: Mon, 9 Apr 2012 14:37:52 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p10; KDE/4.5.5; amd64; ; ) References: <1333994930.58509.YahooMailClassic@web180004.mail.gq1.yahoo.com> In-Reply-To: <1333994930.58509.YahooMailClassic@web180004.mail.gq1.yahoo.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201204091437.55505.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Mon, 09 Apr 2012 14:38:10 -0400 (EDT) Cc: freebsd-hackers@freebsd.org Subject: Re: Startvation of realtime piority threads X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Apr 2012 18:38:11 -0000 On Monday, April 09, 2012 2:08:50 pm Sushanth Rai wrote: > I'm on 7.2. sched_sleep() on 7.2 just records the sleep time. That's why I though _sleep might the right place to do the check. Nah, sched_sleep() is more accurate since the sleep priority can have other side effects. Hmm, in stock 7.2, the rtprio range is below things like PVM, etc., so that shouldn't actually be buggy in that regard. I fixed this in 9.0 and HEAD when I moved the rtprio range up above the kernel sleep priorities. Are you using local patches to 7.2 to raise the priority of rtprio threads? > Thanks, > Sushanth > > --- On Mon, 4/9/12, John Baldwin wrote: > > > From: John Baldwin > > Subject: Re: Startvation of realtime piority threads > > To: "Sushanth Rai" > > Cc: freebsd-hackers@freebsd.org > > Date: Monday, April 9, 2012, 9:17 AM > > On Thursday, April 05, 2012 9:08:24 > > pm Sushanth Rai wrote: > > > I understand the downside of badly written realtime > > app. In my case > > application runs in userspace without making much syscalls > > and by all means it > > is a well behaved application. Yes, I can wire memory, > > change the application > > to use mutex instead of spinlock and those changes should > > help but they are > > still working around the problem. I still believe kernel > > should not lower the > > realtime priority when blocking on resources. This can lead > > to priority > > inversion, especially since these threads run at fixed > > priorities and kernel > > doesn't muck with them. > > > > > > As you suggested _sleep() should not adjust the > > priorities for realtime > > threads. > > > > Hmm, sched_sleep() for both SCHED_4BSD and SCHED_ULE already > > does the right > > thing here in HEAD. > > > > if (PRI_BASE(td->td_pri_class) != > > PRI_TIMESHARE) > > return; > > > > Which OS version did you see this on? > > > > -- > > John Baldwin > > > -- John Baldwin