Yes, I think xtime is updated by the tick timer.
system_timer->offset() may be updated by different mechanisms, depending
on the specific arm subarch.
No. As I said, the function usually has "gettimeoffset" in the name and
it's specific to arm so it would be under arch/arm. For instance, on
Xscale boards it's ixp2000_gettimeoffset() in arch/arm/mach-ixp2000/core.c.
For more information you might want to look at the code in arch/arm or
else talk to the arm developers on the linux-arm-kernel mailing list.
Chris
--