Date: Mon, 9 Apr 2012 14:37:52 -0400 From: John Baldwin <jhb@freebsd.org> To: Sushanth Rai <sushanth_rai@yahoo.com> Cc: freebsd-hackers@freebsd.org Subject: Re: Startvation of realtime piority threads Message-ID: <201204091437.55505.jhb@freebsd.org> In-Reply-To: <1333994930.58509.YahooMailClassic@web180004.mail.gq1.yahoo.com> References: <1333994930.58509.YahooMailClassic@web180004.mail.gq1.yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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 <jhb@freebsd.org> wrote: > > > From: John Baldwin <jhb@freebsd.org> > > Subject: Re: Startvation of realtime piority threads > > To: "Sushanth Rai" <sushanth_rai@yahoo.com> > > 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204091437.55505.jhb>