Re: Fwd: do_gettimeofday vs. rdtsc in the scheduler

john stultz (johnstul@us.ibm.com)
17 Sep 2002 13:29:18 -0700


> I'm writing a patch for the scheduler that allows normal processes to run
> occasionally even though real-time processes completely dominate the CPU.
> In
> order to do this the way I want to for a specific real-time application, I
> need to keep track of the times that the schedule(void) function gets
> called.
> This time is then used to calculate the time difference between when a
> normal
> process was run last and the current time. I was trying to avoid
> do_gettimeofday because of the overhead, but now I'm wondering if rdtsc on
> an
> SMP machine may mess up my readings because the TSC from two different
> processors may be read. Am I right in assuming this? Secondly, any good
> suggestions on how to proceed with my patch?

Tread with caution. Some NUMA boxes do not have synced TSC, so on those
systems your code won't work. Additionally, you code would need to take
other technologies like speedstep into account as well Alternatively,
you might want to try using get_cycles, or some other semi-abstracted
interface, so alternative time sources could be used in the future
without having to re-write your code. I'm working on somewhat
abstracting out time sources with my timer-changes patch, so take a peek
at it and let me know if you have any suggestions.

thanks
-john

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/