14

Whenever I see Linux booting, I see this message:

clocksource tsc unstable (delta = NNNNNNNN ns)

where NNNNNNNN is some very large number which may be positive or negative.

What does this message mean? Should I be concerned about this?

5
  • 1
    I think tsc refers to the Time Stamp Counter. If that helps. Feb 25, 2012 at 16:56
  • Also, given what I find about this message online, do you see this message on a physical machine or a virtual one. Seems like that is relevant. Feb 25, 2012 at 16:57
  • Both physical and virtual. I get this message on several different systems when I boot Linux on them.
    – bwDraco
    Feb 25, 2012 at 17:02
  • I got exactly this message in /var/log/message when added options "acpi=off" to the /etc/grub.conf (as kernel= option). When I removed it, rebooted, the message was gone. CentOS 6 with Kernel: .6.32-279.19.1.el6.x86_64
    – user191857
    Jan 22, 2013 at 11:06
  • you can see lower performance in system calls like gettimeofday() due to this, as they will fall back to e.g. the HPET if the TSC is unavailable. you'll also get lower resolution from such calls.
    – nick black
    Mar 14, 2023 at 4:58

1 Answer 1

10

I honestly see this message for the first time today and have no clue what it actually means.

That being said, I read the Wikipedia article on the Time Stamp Counter (which is what the tsc in the error message stands for). The article mentions a problem with the TSC in the second paragraph:

The time stamp counter has, until recently, been an excellent high-resolution, low-overhead way of getting CPU timing information. With the advent of multi-core/hyperthreaded CPUs, systems with multiple CPUs, and "hibernating" operating systems, the TSC cannot be relied on to provide accurate results — unless great care is taken to correct the possible flaws: rate of tick and whether all cores (processors) have identical values in their time-keeping registers. There is no promise that the timestamp counters of multiple CPUs on a single motherboard will be synchronized. In such cases, programmers can only get reliable results by locking their code to a single CPU. Even then, the CPU speed may change due to power-saving measures taken by the OS or BIOS, or the system may be hibernated and later resumed (resetting the time stamp counter). In those latter cases, to stay relevant, the counter must be recalibrated periodically (according to the time resolution your application requires).

In short, on modern systems, the TSC sucks for measuring time accurately. And that's what the message is telling you. On your system, the TSC is not a stable time source.

The delta noted, I would assume, is the reported time delta between two ticks of the TSC. Meaning, every time the TSC counts up 1, NNNNNNNNN nanoseconds will have passed. So, that's how you usually can keep very accurate time.

The linux kernel will have checked this frequency multiple times (to determine if the source is stable) and it got different results. Thus, the message.


So, do you need to be concerned?
I honestly don't know. To my understanding, this problem arises from processes being "moved" between cores (every core could have a different TSC frequency) or a core changing its core frequency (like with power saving).

Most likely, the message is only printed because the kernel detected this issue for itself and will now adjust accordingly.

And, from what I read in the kernel sources (arch/x86/kernel/tsc.c), I don't think I'm too far off with my assumptions.

I doubt the message means a critical condition. And I base that on the assumption that you would know by now if it was critical.

3
  • 3
    Quoting from the same article some modern CPUs also provide a constant Time Stamp Counter: Recent Intel processors include a constant rate TSC (identified by the constant_tsc flag in Linux's /proc/cpuinfo). With these processors, the TSC reads at the processor's maximum rate regardless of the actual CPU running rate.
    – scai
    Jan 9, 2013 at 15:34
  • 1
    Do you recommend using hpet instead of tsc? Jul 16, 2014 at 7:15
  • 2
    I would like to just add information. That today i faced this issue on one of our supermicro server. OS is RHEL 6.5 and it is giving same message. And this server is crawling at snail pace right now. It's been an hour and boot haven't complete yet. My next step will be to change the counter and add information in grub.conf file by going in rescue mode . Because single user mode is also not working
    – OmiPenguin
    Jan 19, 2016 at 8:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .