Messages in this thread | | | Subject | [RFC/PATCH] FUSYN Realtime & robust mutexes for Linux, v2.3.1 | Date | Wed, 4 Aug 2004 02:13:23 -0700 | From | "Perez-Gonzalez, Inaky" <> |
| |
Hi All
Fusyn aims to provide primitives to solve a bunch of gaps in POSIX compliance related to mutexes, conditional variables and semaphores, POSIX Advanced real-time support as well as adding mutex robustness (to dying owners) and deep deadlock checking.
All of these primitives are available to both kernel space and user space (through a generalization of the mechanism used by futexes), allowing for a fast path on most mutex operations.
We strive to solve the POSIX gap of scheduling-policy based unlock/wakeup for mutexes, conditional variables, semaphores, etc; the lacks in Advanced Real-Time support (priority inversion protection through priority inheritance and priority protection), robust mutexes (mutex waiters no longer deadlock when a mutex owner dies) and deep deadlock checking for mutexes.
The full description of the gaps we solve, rationales behind the implementation and explanations on the need for the new features is kind of long to fully explain here, so you can find it in the linux/Documentation/fusyn-why.txt after applying our patch or at our website, in:
http://developer.osdl.org/dev/robustmutexes/index.html#Documentation
High level changelog since release 2.3:
- Not much, ported to 2.6.7 vanilla.
However, this showed that we weren't properly locking when obtaining pages from an 'struct address_mapping' [function __vl_key_page_get_shared()]...so we fixed that.
Still to-do:
- Finally finish implementing priority protection; the core is there, only the glue to use it is needed.
- Wipe out debug stuff
- Call fuqueue_waiter_cancel() into try_to_wake_up?
The patch is split in the following parts:
1/11: documentation files 2/11: priority based O(1) lists 3/11: kernel fuqueues 4/11: kernel fulocks 5/11: user space/kernel space tracker 6/11: user space fuqueues 7/11: user space fulocks 8/11: Arch-specific support 9/11: Modifications to the core: basic 10/11: Modifications to the core: struct timeout 11/11: Modifications to the core: scheduler
We are not posting it to the list, as it has grown kind of big. It can be obtained at out web site mentioned above, in the Download section.
Iñaky Pérez-González -- Not speaking for Intel -- all opinions are my own (and my fault)
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |