Re: FUSYN and RT

From: john cooper
Date: Sat Apr 16 2005 - 08:12:22 EST


Sven Dietrich wrote:
/** A fuqueue, a prioritized wait queue usable from

kernel space. */

struct fuqueue {
spinlock_t lock; struct plist wlist;
struct fuqueue_ops *ops;
};


Would the above spinlock_t be a raw_spinlock_t? This goes
back to my first question. I'm not sure how familiar you are with Ingo's work, but he has turned all spinlocks into mutexes, and when you really need an original spinlock, you declare it with raw_spinlock_t.



This one probably should be a raw_spinlock. This lock is only held to protect access to the queues.
Since the queues are already priority ordered, there is
little benefit to ordering -the order of insertion-
in case of contention on a queue, compared with the complexity.

The choice of lock type should derive from both the calling
context and the length of time the lock is expected to be held.

-john


--
john.cooper@xxxxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/