Re: [RFC] [PATCH 1/1] hrtimers: Cache next hrtimer

From: Ashwin Chaugule
Date: Fri Aug 28 2009 - 16:27:19 EST


Thomas Gleixner wrote:
On Fri, 28 Aug 2009, Ashwin Chaugule wrote:
Thomas Gleixner wrote:
Avg startup time 26.4 (10 runs) same as last run.

total_calls is again equal to cache_hits ... Its been a while since I wrote my
patch. I'll need to look deeper to see if I've done something more. B)
Just to make sure, I ran my patch again, I clearly see cache_hits is always
less than total_calls.

Hmm. I'd really like to know why that's behaving different.

Usually there are only timers in the CLOCK_MONOTONIC base during
boot. CLOCK_REALTIME base should be empty most of the time. If my
theory is correct then the number of reprogram events is correct as
well because base[MONOTONIC]->first is always the one which armed the
timer.

Can you add some debug which tells us to which base the removed timer
belongs ?

You're right about that. I confirmed that its MONOTONIC all the way. (I didn't think it'd be like that)
However, the reason for different results, *I think* is coming from hrtimer_reprogram,
where we check if the newly enqueued timer is going to expire before the currently armed timer.
Thats where I change /next_hrtimer/ as well.

So, if the expires_next value is changed as a result of hrtimer_enqueue_reprogram, we just raise HRTIMER_SOFTIRQ (rightfully),
but the latest patch doesn't do those checks in this path, coz, we don't call force_reprogram.


Cheers,
Ashwin


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