lkml.org 
[lkml]   [2004]   [Aug]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Subject[RFC/PATCH] FUSYN Realtime & robust mutexes for Linux, v2.3.1
Date
From
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/

\
 
 \ /
  Last update: 2005-03-22 14:04    [W:0.061 / U:0.220 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site