Re: gettimeofday() in 2.6.24

From: Chris Friesen
Date: Thu Apr 17 2008 - 14:14:06 EST


Jack Harvard wrote:

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));


but I haven't quite figured out how gettimeofday() actually gets time
from this added timer, also how xtime is updated?


system_timer->offset() uses the added timer to return the number of usecs since the last timer tick. It's potentially different for each specific type of arm blade, and the function often has "gettimeoffset" in the name.

"xtime" is updated in the core kernel code.

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