[RFC/PATCH] FUSYN Realtime & robust mutexes for Linux try 2.2

inaky.perez-gonzalez_at_intel.com
Date: 07/23/04

  • Next message: inaky.perez-gonzalez_at_intel.com: "[RFC/PATCH] FUSYN 2/11: priority based O(1) lists"
    Date:	Fri, 23 Jul 2004 08:48:43 -0700
    To: linux-kernel@vger.kernel.org
    
    

    Hi All

    This is a new release of the code for providing a user and kernel
    space synchronization infrastructure that provides real-time friendly
    behavior, priority inversion protection (through serialized unlocks,
    priority inheritance and protection), deadlock detection and
    robustness [as in it doesn't fry when a mutex owner dies].

    It builds upon the design of futexes and its usage model as NPTL does.

    Please look at the first patch, containing the documentation for
    information on how is it implemented. Kind of outdated, but useful
    anyway. As well, the OLS 2004 paper is available on the web site.

    High level changelog since release 2.2:

    - Requeue-like support implemented for fuqueues and fulocks, to
    speed up conditional variable broadcast.

    - auto detection of the best unlock mode (based on an idea by
    Jamie Lokier).

    - Improve the taking of timeouts from user space by creating a
    'struct timeout' that can take an absolute or relative
    specification. POSIX uses absolute, so it is dumb to go to the
    kernel twice, once to ask for the current time and then
    compute a relative sleep and another one to do the actual
    sleep.

    - Added the ability to selectively compile out some parts of the
    code via CONFIG_ options. Could add some more grain.

    - Pages are no longer pinned while waiting.

    - Fixed a big bunch of race conditions and bugs.

    - priority lists are now fully O(140) ~= O(1) [except for
    splice, which is still a hack that needs polishing].

    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 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.

    -
    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/


  • Next message: inaky.perez-gonzalez_at_intel.com: "[RFC/PATCH] FUSYN 2/11: priority based O(1) lists"

    Relevant Pages

    • [RFC/PATCH] FUSYN Realtime & robust mutexes for Linux try 2.2
      ... This is a new release of the code for providing a user and kernel ... behavior, priority inversion protection (through serialized unlocks, ... - Requeue-like support for speeding up conditional variables. ...
      (Linux-Kernel)
    • RE: [RFC/PATCH] FUSYN Realtime & Robust mutexes for Linux try 2
      ... > implementation can be moved from kernel space to userspace, ... - robustness: you need the kernel help, at least to identify the dead ... it can be dangerous to promote the priority of task B, ... it can do everything waitqueues do with the priority based interface. ...
      (Linux-Kernel)
    • Kernel support for peer-to-peer protection models...
      ... except for the protection model supported by the hardware. ... of a server process or DLL may be non-addressable by an app process, ... Hardware interrupts are involuntary inter-space calls. ... the kernel and the apps. ...
      (Linux-Kernel)
    • RE: [RFC/PATCH] FUSYN Realtime & Robust mutexes for Linux try 2
      ... this wake up has to be by priority. ... >> kernel by definition knows nil about the mutex, ... > I haven't thought through whether keeping a mutex in KCO mode has this ... >> identify the owner and most of fusyn's benefits disappear. ...
      (Linux-Kernel)
    • Re: Kernel support for peer-to-peer protection models...
      ... Kernel support for peer-to-peer protection models... ... >> We're a processor startup with a new architecture that we will be ... Buggy drivers cannot crash the kernel. ...
      (Linux-Kernel)