On Thu, Apr 07, 2005 at 10:52:25AM -0700, Daniel Walker wrote:
> 
> Source: Daniel Walker <[EMAIL PROTECTED]> MontaVista Software, Inc
> Description:
>       This patch adds the priority list data structure from Inaky 
> Perez-Gonzalez 
> to the Preempt Real-Time mutex.
> 
> the patch order is (starting with a 2.6.11 kernel tree),
> 
> patch-2.6.12-rc2
> realtime-preempt-2.6.12-rc2-V0.7.44-01
>       
> Signed-off-by: Daniel Walker <[EMAIL PROTECTED]>
> 
> Index: linux-2.6.11/include/linux/plist.h
> ===================================================================
> --- linux-2.6.11.orig/include/linux/plist.h   1970-01-01 00:00:00.000000000 
> +0000
> +++ linux-2.6.11/include/linux/plist.h        2005-04-07 17:47:42.000000000 
> +0000
> @@ -0,0 +1,310 @@

[ . . . ]

> +/* Grunt to do the real removal work of @pl from the plist. */
> +static inline
> +void __plist_del (struct plist *pl)
> +{
> +     struct list_head *victim;
> +     if (list_empty (&pl->dp_node))          /* SP-node, not head */
> +             victim = &pl->sp_node;
> +     else if (list_empty (&pl->sp_node))     /* DP-node, empty SP list */
> +             victim = &pl->dp_node;
> +     else {                                  /* SP list head, not empty */
> +             struct plist *pl_new = container_of (pl->sp_node.next,
> +                                                  struct plist, sp_node);
> +             victim = &pl->sp_node;
> +             list_replace_rcu (&pl->dp_node, &pl_new->dp_node);

If you are protecting this list with RCU...

> +     }
> +     list_del_init (victim);

... you need to wait for a grace period before deleting the element
removed from the list.

Or are you just using list_replace_rcu() for its replacement capability?
If so, seems like it might be worthwhile to make a list_replace().
This would get rid of the memory barrier, and also keep from confusing
people like myself.  ;-)

                                                        Thanx, Paul
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to