Use of high-res timers

From: Alan Stern
Date: Wed May 30 2012 - 14:38:09 EST


Thomas, Ingo, or anyone else:

My driver needs to time a bunch of events, with roughly millisecond
precision. Up to now it has used old-fashioned timer_lists and the
jiffies counter, but I'm switching over to high-resolution timers and
ktime_get.

This leads to a few questions (these issues don't seem to be addressed
anywhere in Documentation/timers):

Should I be concerned about efficiency? I may well end up
calling ktime_get several times per millisecond; is it fast
enough for this to be okay?

I need timed intervals with reliable lower bounds. Let's say
I call ktime_get twice, maybe once in an interrupt handler and
once in an hrtimer callback (not necessarily on the same CPU).
Some action has to be taken no earlier than 1 ms after the
first call. If the second call returns a value that is at
least 1 ms larger than the first call, is that enough of a
guarantee? If not, how much larger does it have to be?

Which has more overhead: adding and cancelling an hrtimer
several times, or simply letting it expire and returning
immediately from the callback? (I wouldn't be surprised if
there was no good answer.)

Thanks,

Alan Stern

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