Re: [Regression, bisected] a3e06bbe8445f57eb949e6474c5a9b30f24d2057:KVM: emulate lapic tsc deadline timer for guest"

From: Linus Torvalds
Date: Tue Dec 20 2011 - 13:59:09 EST


On Tue, Dec 20, 2011 at 1:51 AM, Alexey Zaytsev
<alexey.zaytsev@xxxxxxxxx> wrote:
>
> Let me clarify the situation.
>
> Before this commit, the tsc was advertised in cpuid, and it was
> handled, if I understand things correctly, by qemu.
> After this commit, the tsc is advertised in cpuid, and is handled in
> the kernel, but only after qemu issues KVM_CREATE_IRQCHIP. If it does
> not issue the ioctl, the kernel just discards any wrmsrs done to the
> tsc. This does not look like an Illumos problem to me. Linux guests
> kind of work here, because they are  prepared to work on utterly
> broken hardware. Good for you, but please don't break less-prepared
> guests.

Yes. This is a regression, and needs to be fixed.

Liu, if you don't have time to debug it, we'll just revert the commit.
It's that easy. Regressions are not allowed. There are no excuses.

In particular, saying "just wait for qemu-kvm" is not an acceptable
answer, because the point is that things *used* to work, and they
broke. No "change it to work with the new kernel" allowed, except for
some *very* rare critical circumstances (usually "major security-bug
that we had to fix, and people who relied on it are thus out of
luck").

Commit a3e06bbe8445 still seems to revert cleanly, so that is the easy option.

That said, it sounds like maybe another solution is to start with the
TSC_DEADLINE timer bit in cpuid cleared, and only setting it after the
KVM_CREATE_IRQCHIP ioctl.

In fact, the patch is clearly buggy, in that it apparently doesn't
emulate TSC_DEADLINE correctly and natively on its own.

Jan, Marcelo, Avi - is there a quick fix, or should I just revert?

And please don't *EVER* tell people that they should just work around
regressions. Regressions are absolutely unacceptable. Kernel people
need to understand that.

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