Skip site navigation (1)Skip section navigation (2)
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>