2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 <2013> 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 <2013> 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Wait/wound mutexes |
From: | Michael Davidsaver <[email protected]> |
To: | [email protected] |
Date: | Mon, 13 May 2013 10:57:25 -0400 |
On 05/11/2013 11:30 PM, Andrew Johnson wrote:
I've just been reading an interesting LWN article about a mutex design that allows random locking order of multiple mutexes without danger of deadlocks. This might be a useful approach for the multi-channel additions. http://lwn.net/Articles/548909/ More details at the link in the first Conclusions paragraph.
This is similar to the first algorithm I came up with. The part I was missing was the idea of "reservation ids" to avoid live lock. For epics lock sets this would need to be extended to include some idea of priority as well.
Because this didn't occur to me I came up with the idea of maintaining the locks in a global order. This does guarantee forward progress, but is more complex then the scheme described in the LWN article. global ordering does avoids the need to make explicit decisions based on thread priority though.
Definitely food for thought :)