Re: [PATCH] Shrink rbtree

From: Steven Rostedt
Date: Sun Apr 23 2006 - 12:38:22 EST


I'm just adding Thomas Gleixner and Roman Zippel to the CC field since
the part in question came from a debate to get rid of a state field in
hrtimer.

http://marc.theaimsgroup.com/?l=linux-kernel&m=114215996918851&w=2

-- Steve

On Fri, 2006-04-21 at 18:09 -0700, Andrew Morton wrote:
> David Woodhouse <dwmw2@xxxxxxxxxxxxx> wrote:
> >
> > git://git.infradead.org/~dwmw2/rbtree-2.6
>
> include/linux/hrtimer.h: In function `hrtimer_active':
> include/linux/hrtimer.h:130: structure has no member named `rb_parent'
>
> Might I cast aspersions upon the quality of your testing?
>
>
>
> #define HRTIMER_INACTIVE ((void *)1UL)
>
> ...
>
> static inline int hrtimer_active(const struct hrtimer *timer)
> {
> return rb_parent(timer->node) != HRTIMER_INACTIVE;
> }
>
>
> So we have somewhat-competing hackery here.
>
> Testing this...
>
> --- devel/include/linux/hrtimer.h~git-rbtree-hrtimer-fix 2006-04-21 18:03:44.000000000 -0700
> +++ devel-akpm/include/linux/hrtimer.h 2006-04-21 18:08:02.000000000 -0700
> @@ -34,7 +34,7 @@ enum hrtimer_restart {
> HRTIMER_RESTART,
> };
>
> -#define HRTIMER_INACTIVE ((void *)1UL)
> +#define HRTIMER_INACTIVE ((void *)-2)
>
> struct hrtimer_base;
>
> @@ -127,7 +127,7 @@ extern ktime_t hrtimer_get_next_event(vo
>
> static inline int hrtimer_active(const struct hrtimer *timer)
> {
> - return timer->node.rb_parent != HRTIMER_INACTIVE;
> + return rb_parent(&timer->node) != HRTIMER_INACTIVE;
> }
>
> /* Forward a hrtimer so it expires after now: */
> _
>
> -
> 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/

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