Date: Sun, 11 Jun 2000 03:55:15 -0700 From: David Greenman <dg@root.com> To: "Jacob A. Hart" <c9710216@studentmail.newcastle.edu.au> Cc: Brian Fundakowski Feldman <green@FreeBSD.ORG>, Doug Barton <DougB@gorean.org>, Sheldon Hearn <sheldonh@uunet.co.za>, FreeBSD-CURRENT <freebsd-current@FreeBSD.ORG> Subject: Re: Scheduler changes? Message-ID: <200006111055.DAA27067@implode.root.com> In-Reply-To: Your message of "Sun, 11 Jun 2000 20:03:22 %2B1000." <20000611200322.A236@carcass.au.hartware.com>
next in thread | previous in thread | raw e-mail | index | archive | help
>Using idprio as Volodymyr suggested seems to be a viable workaround. You >mentioned in another message that idprio could potentially deadlock my >machine, though. Under what conditions could this happen (and how likely >is it to occur)? idprio can lead to a system hang due to priority inversion. For example, suppose that an idprio process does disk I/O and locks a critical resource (such as the vnode for the '/' directory) prior to doing that. Then also suppose that a normal process is in a permanent run state (loop: goto loop). When the I/O completes on the idprio process, it will never be given an opportunity to release the vnode lock. Eventually just about everything in the system will deadlock waiting on that resource and the system will essentially hang. The work-around for this is to temporarily increase the priority of idprio processes while they execute in the kernel, but this hasn't yet been implemented. The above scenario can happen pretty easily if you have an idprio process doing a normal mix of file operations - all you need then is normal priority process(es) to eat all the CPU for long periods - even a few seconds can be very annoying to interactive users. -DG David Greenman Co-founder, The FreeBSD Project - http://www.freebsd.org Manufacturer of high-performance Internet servers - http://www.terasolutions.com Pave the road of life with opportunities. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006111055.DAA27067>