Date: Sun, 16 Sep 2007 17:59:12 -0700 From: Alfred Perlstein <alfred@freebsd.org> To: Daniel Eischen <deischen@freebsd.org> Cc: performance@freebsd.org, Kip Macy <kip.macy@gmail.com>, Kris Kennaway <kris@freebsd.org>, java@freebsd.org, Kurt Miller <kurt@intricatesoftware.com>, freebsd-java@freebsd.org Subject: Re: Massive performance loss from OS::sleep hack Message-ID: <20070917005912.GT79417@elvis.mu.org> In-Reply-To: <Pine.GSO.4.64.0709161128520.5797@sea.ntplx.net> References: <46EC1B55.4060202@FreeBSD.org> <200709152250.50879.kurt@intricatesoftware.com> <Pine.GSO.4.64.0709160030580.3591@sea.ntplx.net> <b1fa29170709152225x5a57a30fm7efbd6e331cfff28@mail.gmail.com> <Pine.GSO.4.64.0709161128520.5797@sea.ntplx.net>
next in thread | previous in thread | raw e-mail | index | archive | help
* Daniel Eischen <deischen@freebsd.org> [070916 08:46] wrote: > On Sat, 15 Sep 2007, Kip Macy wrote: > > >Or more likely they'll continue to maintain a sched_yield that isn't > >posix compliant. We may just want to add some sort of interface so the > >jvm can tell the kernel that sched_yield should be non-compliant for > >the current process. > > I don't think that is a good idea, it seems like too much of a hack. > The scheduler(s) should schedule threads the way they are designed > to, either obeying a threads priority, using it as a hint, or totally > ignoring it. > > If the JVM kept track of the thread priorities in use, I suppose > Thread.yield() could first lower the current thread's priority to > the next used priority and then yield, raising the priority back after > the yield. This isn't perfect, there are race conditions, the next > highest priority thread(s) could be blocked and not runnable, etc. > Maybe just lowering the priority to min or default priority would work > well enough. > > This test would fail even on Solaris if you use SCHED_RR or SCHED_FIFO > since it is POSIX compliant for those scheduling classes. Since Sun wasn't concenred with correctness, just performance, I don't think we have to shoot for the moon here. I think your suggestion about temporarily lowering priority makes sense. -Alfred
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070917005912.GT79417>