linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC/PATCH] FUSYN Realtime & Robust mutexes for Linux try 2.1
@ 2004-01-14 22:49 inaky.perez-gonzalez
  2004-01-14 22:49 ` [RFC/PATCH] FUSYN 1/10: documentation files inaky.perez-gonzalez
  2004-01-15  1:12 ` [RFC/PATCH] FUSYN Realtime & Robust mutexes for Linux try 2.1 Bernhard Kuhn
  0 siblings, 2 replies; 13+ messages in thread
From: inaky.perez-gonzalez @ 2004-01-14 22:49 UTC (permalink / raw)
  To: linux-kernel; +Cc: inaky.perez-gonzalez, robustmutexes

Hi All

This code proposes an implementation of kernel based mutexes,
taking ideas from the actual implementations using futexes
(namely NPTL), intending to solve its limitations (see doc) and
adding some features, such as real-time behavior, priority
inheritance and protection, deadlock detection and robustness.

Please look at the first patch, containing the documentation
for information on how is it implemented.

High level changelog since release 2.0:

- Fix docs, document the convoy phenomenon.

- Fix bugs in maintiaining the state of the ufulock when
switching back and forth to "fast-path mode".

- Added a few ioctl-like commands for querying state of the
ufulock as well as destruction.

- Add KCO mode, where the fast path is not available. This can
be used by architectures that don't have
compare-and-exchange. As well, it is the foundation for
priority protection.  All tests pass, and seems to work
[although didn't have too much time to go over it].

- Ported to 2.6.1 (basing it on mm2 to get kgdb goodies);
patches vanilla ok; however, you will get a couple of rejects
in kernel/Makefile -- it expects a line with ktrhead.o [just
make sure the line with all the fuqueue stuff is there].

Still to-do:

- Ugly bug triggered by running rtnptl-test-misc::str03 with:

$ (ulimit -s 32; time ./str03 -b5 -d5 > /tmp/kk)

[triggers inconsistency warning on NPTL patched with the rtnptl
patch].

- Finish implementing priority protection; this requires the
changes to implement priority inheritance with SCHED_NORMAL
tasks--need to find a way to have kind of an 'effective'
priority vs the original one that is not too invasive.

- Add a flag to the passing of timeout information to indicate
if it is relative or absolute, and as we are there, the clock
source. This way we avoid a costly kernel access in
pthread_mutex_timelock() and friends.

- Need to rename VFULOCK_KCO to VFULOCK_WP, to reduce confusions
with the KCO mode [that was _a_ mistake].

- Wipe out debug stuff (when not needed any more)

- research using single bit mode for fast-path on arches without
compare-and-exchange but with test-and-set bit.

- Add CONFIG option to compile out parts or all.

- Call __fuqueue_wait_cancel() into try_to_wake_up?

- unlock()-to-task, as suggested by Jamie...is it really needed?

- Research more into safe static allocation as proposed by Scott
Wood--the basic idea has a bunch of problems, mainly that it
kills caching and some others, but needs further research.

Did I miss anything?

The patch is split in the following parts:

1/10: documentation files
2/10: modifications to the core
3/10: Support for i386
4/10: Support for ia64
5/10: kernel fuqueues
6/10: user space/kernel space tracker
7/10: user space fuqueues
8/10: kernel fulocks
9/10: stub for priority protection
10/10: user space fulocks

We have a site at http://developer.osdl.org/dev/robustmutexes
with references to all the releases, test code and NPTL
modifications (rtnptl) to use this code. As well, the patch
is there in a single file, in case you don't want to paste
them manually.


^ permalink raw reply	[flat|nested] 13+ messages in thread
[parent not found: <0312030051..awdiaSdmbvbObNbZa.b4a2cadobvdta25502@intel.com>]

end of thread, other threads:[~2004-01-15  1:14 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-14 22:49 [RFC/PATCH] FUSYN Realtime & Robust mutexes for Linux try 2.1 inaky.perez-gonzalez
2004-01-14 22:49 ` [RFC/PATCH] FUSYN 1/10: documentation files inaky.perez-gonzalez
2004-01-14 22:49   ` [RFC/PATCH] FUSYN 2/10: modifications to the core inaky.perez-gonzalez
2004-01-14 22:50     ` [RFC/PATCH] FUSYN 3/10: Support for i386 inaky.perez-gonzalez
2004-01-14 22:50       ` [RFC/PATCH] FUSYN 4/10: Support for ia64 inaky.perez-gonzalez
2004-01-14 22:50         ` [RFC/PATCH] FUSYN 5/10: kernel fuqueues inaky.perez-gonzalez
2004-01-14 22:50           ` [RFC/PATCH] FUSYN 6/10: user space/kernel space tracker inaky.perez-gonzalez
2004-01-14 22:50             ` [RFC/PATCH] FUSYN 7/10: user space fuqueues inaky.perez-gonzalez
2004-01-14 22:50               ` [RFC/PATCH] FUSYN 8/10: kernel fulocks inaky.perez-gonzalez
2004-01-14 22:50                 ` [RFC/PATCH] FUSYN 9/10: stub for priority protection inaky.perez-gonzalez
2004-01-14 22:50                   ` [RFC/PATCH] FUSYN 10/10: user space fulocks inaky.perez-gonzalez
2004-01-15  1:12 ` [RFC/PATCH] FUSYN Realtime & Robust mutexes for Linux try 2.1 Bernhard Kuhn
     [not found] <0312030051..awdiaSdmbvbObNbZa.b4a2cadobvdta25502@intel.com>
2003-12-03  8:51 ` [RFC/PATCH] FUSYN 10/10: user space fulocks inaky.perez-gonzalez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).