* Ingo Molnar <mi...@kernel.org> wrote:

> I'd also suggest the removal of the timerqueue_getnext() 
> obfuscation: it 'sounds' complex but in reality it's a simple 
> dereference to active.next. I think this is what triggered this 
> rather pointless maintenance of active_bases.

The patch below does this - it's more readable to me in this fashion, 
the 'next' field is already very clearly named, no need for a 
(longer!) helper function there.

I lightly tested the 3 patches with hrtimers enabled under a virtual 
machine.

Thanks,

        Ingo

---
 kernel/time/hrtimer.c |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Index: tip/kernel/time/hrtimer.c
===================================================================
--- tip.orig/kernel/time/hrtimer.c
+++ tip/kernel/time/hrtimer.c
@@ -451,7 +451,7 @@ static ktime_t __hrtimer_get_next_event(
                struct timerqueue_node *next;
                struct hrtimer *timer;
 
-               next = timerqueue_getnext(&base->active);
+               next = base->active.next;
                if (!next)
                        continue;
 
@@ -876,7 +876,7 @@ static void __remove_hrtimer(struct hrti
        if (!(timer->state & HRTIMER_STATE_ENQUEUED))
                goto out;
 
-       next_timer = timerqueue_getnext(&base->active);
+       next_timer = base->active.next;
        timerqueue_del(&base->active, &timer->node);
        if (&timer->node == next_timer) {
 #ifdef CONFIG_HIGH_RES_TIMERS
@@ -1271,7 +1271,7 @@ retry:
 
                basenow = ktime_add(now, base->offset);
 
-               while ((node = timerqueue_getnext(&base->active))) {
+               while ((node = base->active.next)) {
                        struct hrtimer *timer;
 
                        timer = container_of(node, struct hrtimer, node);
@@ -1438,7 +1438,7 @@ void hrtimer_run_queues(void)
 
        for (index = 0; index < HRTIMER_MAX_CLOCK_BASES; index++) {
                base = &cpu_base->clock_base[index];
-               if (!timerqueue_getnext(&base->active))
+               if (!base->active.next)
                        continue;
 
                if (gettime) {
@@ -1448,7 +1448,7 @@ void hrtimer_run_queues(void)
 
                raw_spin_lock(&cpu_base->lock);
 
-               while ((node = timerqueue_getnext(&base->active))) {
+               while ((node = base->active.next)) {
                        struct hrtimer *timer;
 
                        timer = container_of(node, struct hrtimer, node);
@@ -1631,7 +1631,7 @@ static void migrate_hrtimer_list(struct
        struct hrtimer *timer;
        struct timerqueue_node *node;
 
-       while ((node = timerqueue_getnext(&old_base->active))) {
+       while ((node = old_base->active.next)) {
                timer = container_of(node, struct hrtimer, node);
                BUG_ON(hrtimer_callback_running(timer));
                debug_deactivate(timer);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
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