On Fri, 28 Jan 2011, Ralf Baechle wrote: > On Thu, Jan 27, 2011 at 08:59:55PM -0800, Earl Chew wrote: > > > The CPU frequency is known to the Linux kernel. For example: > > > > > CPU revision is: 00019374 (MIPS 24Kc) > > > Atheros AR7161 rev 2, CPU:680.000 MHz, AHB:170.000 MHz, DDR:340.000 MHz > > > ... > > > Calibrating delay loop... 452.19 BogoMIPS (lpj=2260992) > > > > Unfortunately that information is not available from userspace: > > > > > cpu model : MIPS 24Kc V7.4 > > > BogoMIPS : 452.19 > > > > This makes it difficult to use CPU timers (rdhwr) from user space > > applications. > > > > > > Is there any reason not to publish mips_hpt_frequency in /proc/cpuinfo ? > > The CPU clock frequency may change at any time due to clockscaling A > process might be rescheduled to another CPU running at a different clock > rate. A suspended process might miss counter wraparounds. > > This right approach is to handle this in a virtual syscall, something like > vsys_clock_gettime(). Right. We had this discussion on x86 over and over and using a vsyscall is the correct approach. That's also a huge win in general if you can avoid going into the kernel to read the time. gettimeofday() and clock_gettime() belong to the most frequently called syscalls on any Linux system. Thanks, tglx