Re: [PATCH] Implement timekeeping for rumprun/hw (x86)

  • From: Martin Lucina <martin@xxxxxxxxxx>
  • To: rumpkernel-users@xxxxxxxxxxxxx
  • Date: Mon, 6 Jul 2015 19:31:27 +0200

On Monday, 06.07.2015 at 17:00, Antti Kantee wrote:

On 06/07/15 16:50, Martin Lucina wrote:
On Monday, 06.07.2015 at 16:41, Antti Kantee wrote:
On 06/07/15 14:43, Martin Lucina wrote:
I have also put in a check that warns if the "TSC invariant" bit is not set
in CPUID, however it turns out that neither KVM nor QEMU set this on my
system, possibly on purpose. So halting if that flag is not set would not
be very useful :-/

Doesn't QEMU set the flags based on which cpu you tell it to
emulate? Or are you saying the flag is stripped even if the host cpu
sets it and -cpu host is used?

The latter. It seems there's some work happened recently-ish regarding
this. Under "KVM" in http://wiki.qemu.org/ChangeLog/2.1:

New "invtsc" (Invariant TSC) CPU feature. When enabled, this will
block migration and savevm, so it is not enabled by default on any CPU
model. To enable invtsc, the migratable=no flag (supported only by -cpu
host, by now) is required. So, invtsc is available only if using: -cpu
host,migratable=no,+invtsc.

I did try "-cpu host,migratable=no,+invtsc" on my machine but it doesn't
make the warning go away...

Silly question, but gotta ask it: is there a system where the
warning doesn't trigger?

Good catch. I had a bug in bmk_x86_cpuid(). Fixed, and the QEMU/KVM -cpu
combo above now makes the warning go away.




Other related posts: