[lkml]   [2005]   [Apr]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: FUSYN and RT
    >>>>> Steven Rostedt <> writes:

    > On Fri, 2005-04-15 at 18:20 -0700, Inaky Perez-Gonzalez wrote:

    >> Back to my example before: in fusyn, a user space lock is a kernel
    >> space lock with a wrapper, that provides all that is necessary for
    >> doing the fast path and handling user-space specific issues.

    > ...

    > So, to answer your question. Looking forward, I kind of see two
    > different structures for locking. The rt_mutex and something that
    > is used by fusyn, then there being some common structure (or ops)
    > that they both use to implement the PI. But the implementation of
    > how the locks work may as well be different. But this may not be the
    > case, and there still be two structures but the fusyn just contain a
    > rt_mutex lock to do the actual locking and the rest of the structure
    > be used for showing information or what not back up to user
    > space. This stuff wouldn't be necessary for the rt_mutex. We need to
    > keep rt_mutex small since it is used all over the place.

    I see--would the following fit your view?

    This would be a kernel lock [from the fusyn patch, linux/fulock.h]:

    /** A fulock, mutex usable from the kernel. */
    struct fulock {
    struct fuqueue fuqueue;
    struct task_struct *owner;
    unsigned flags;
    struct plist olist_node;

    This has an in kernel API so you can use it from modules or kernel

    And this would be kernel representation of a user space lock [from

    struct ufulock {
    struct fulock fulock;
    struct vlocator vlocator;
    struct page *page;

    This is exposed via system calls with fast-path as an option.

    This is basically the kernel lock that provides the functionality and
    an structure to keep a tab to where the thing is in user space (hash
    queues a la futex). The ops are hidden in fulock.fuqueue.ops [fuqueue
    is the waitqueue--just for reference, from linux/fuqueue.h].

    /** A fuqueue, a prioritized wait queue usable from kernel space. */
    struct fuqueue {
    spinlock_t lock;
    struct plist wlist;
    struct fuqueue_ops *ops;



    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-04-16 03:59    [W:0.043 / U:1.928 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site