Re: [(RT RFC) PATCH v2 2/9] sysctl for runtime-control of lateralmutex stealing
From: Sven-Thorsten Dietrich
Date: Mon Feb 25 2008 - 17:57:38 EST
On Mon, 2008-02-25 at 22:53 +0100, Pavel Machek wrote:
> Hi!
>
> > From: Sven-Thorsten Dietrich <sdietrich@xxxxxxx>
> >
> > Add /proc/sys/kernel/lateral_steal, to allow switching on and off
> > equal-priority mutex stealing between threads.
> >
> > Signed-off-by: Sven-Thorsten Dietrich <sdietrich@xxxxxxx>
> > ---
> >
> >
> > #include "rtmutex_common.h"
> >
I'll move it to the header file.
>
> > +#ifdef CONFIG_RTLOCK_LATERAL_STEAL
> > +int rtmutex_lateral_steal __read_mostly = 1;
> > +#endif
> > +
>
> Ugly..
>
>
> > /*
> > * lock->owner state tracking:
> > *
> > @@ -321,7 +325,8 @@ static inline int lock_is_stealable(struct task_struct *pendowner, int unfair)
> > if (current->prio > pendowner->prio)
> > return 0;
> >
> > - if (!unfair && (current->prio == pendowner->prio))
> > + if (unlikely(current->prio == pendowner->prio) &&
> > + !(unfair && rtmutex_lateral_steal))
> > #endif
>
> But this is even worse, you are creating #ifdef maze here. Can you
> simply #define rtmutex_lateral_steal 0 in !CONFIG_RTLOCK_LATERAL_STEAL
> and let the optimizer fix this?
>
Ok - much of this will also disappear into the header then.
>
> > index c913d48..c24c53d 100644
> > --- a/kernel/sysctl.c
> > +++ b/kernel/sysctl.c
> > @@ -175,6 +175,10 @@ extern struct ctl_table inotify_table[];
> > int sysctl_legacy_va_layout;
> > #endif
> >
> > +#ifdef CONFIG_RTLOCK_LATERAL_STEAL
> > +extern int rtmutex_lateral_steal;
> > +#endif
> > +
>
> Try checkpatch.
> Pavel
I have that as part of quilt refresh, and it returns:
Your patch has no obvious style problems and is ready for submission.
But Greg may need to enforce it on his git tree that he mails these from
- are you referring to anything specific in this patch?
Sven
--
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/