Messages in this thread | | | Date | Mon, 13 Nov 2006 18:06:15 -0800 | From | Suleiman Souhlal <> | Subject | Re: [PATCH 0/2] Make the TSC safe to be used by gettimeofday(). |
| |
Andi Kleen wrote: > On Tuesday 14 November 2006 02:06, Suleiman Souhlal wrote: > >>I've had a proof-of-concept for this since August, and finally got around to >>somewhat cleaning it up. > > > Thanks. > > I got a competing implementation for this unfortunately now from Vojtech & Jiri > > Yours is simpler, but I'm not sure as complete. What are your assurances > against non monoticity for example?
I believe that the results returned will always be monotonic, as long as the frequency of the TSC does not change from under us (that is, without the kernel knowing). This is because we "synchronize" each CPU's vxtime with a global time source (HPET) every time we know the TSC rate changes.
>>It can certainly still be improved, namely by using vgetcpu() instead of CPUID >>to find the cpu number (but I couldn't get it to work, when I tried). > > > What did not work?
I was not able to make vgettimeofday use vgetcpu(). It seemed like vgetcpu() was not returning the same value as smp_processor_id() would, so the values I'd get with vgettimeofday() did not completely agree with the ones from gettimeofday(2). I didn't have the chance to investigate more.
>>Another possible improvement would be to use RDTSCP when available. >>There's also a small race in do_gettimeofday(), vgettimeofday() and >>vmonotonic_clock() but I've never seen it happen. > > > I did a vposix_getclock with monotonic clock support on my own already, was about to > be merged with the vDSO. It still used global synchronized TSC though.
-- Suleiman
- 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/
| |