Hi, I was trying to figure out how gettimeofday() measures time in 2.6.24-arm2, in which a free-running timer is added to improve the resolution of gettimeofday() from 10ms to us, I can trace down to do_gettimeofday() as follows: http://lxr.linux.no/linux+v2.6.24/arch/arm/kernel/time.c#L240 239#ifndef CONFIG_GENERIC_TIME 240void do_gettimeofday(struct timeval *tv) 241{ 242 unsigned long flags; 243 unsigned long seq; 244 unsigned long usec, sec; 245 246 do { 247 seq = read_seqbegin_irqsave(&xtime_lock, flags); 248 usec = system_timer->offset(); 249 sec = xtime.tv_sec; 250 usec += xtime.tv_nsec / 1000; 251 } while (read_seqretry_irqrestore(&xtime_lock, seq, flags)); 252 253 /* usec may have gone up a lot: be safe */ 254 while (usec >= 1000000) { 255 usec -= 1000000; 256 sec++; 257 } 258 259 tv->tv_sec = sec; 260 tv->tv_usec = usec; 261} 262 263EXPORT_SYMBOL(do_gettimeofday); but I haven't quite figured out how gettimeofday() actually gets time from this added timer, also how xtime is updated? Thanks, Jack --
| Greg KH | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
| Andy Whitcroft | clam |
| Ingo Molnar | [patch] paravirt: VDSO page is essential |
git: | |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Lovich, Vitali | RE: [PATCH] Packet socket: mmapped IO: PACKET_TX_RING |
| David Miller | [GIT]: Networking |
