From: Jan Kiszka <jan.kiszka@siemens.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
Alexey Zaytsev <alexey.zaytsev@gmail.com>,
"Liu, Jinsong" <jinsong.liu@intel.com>,
Avi Kivity <avi@redhat.com>
Cc: Kernel development list <linux-kernel@vger.kernel.org>,
Marcelo Tosatti <mtosatti@redhat.com>,
"Garrett D'Amore" <garrett@nexenta.com>,
kvm <kvm@vger.kernel.org>
Subject: [PATCH v2] KVM: x86: Prevent exposing TSC deadline timer feature in the absence of in-kernel APIC
Date: Wed, 21 Dec 2011 11:25:39 +0100 [thread overview]
Message-ID: <4EF1B423.8050707@siemens.com> (raw)
In-Reply-To: <4EF1B081.3010109@siemens.com>
We must not report the TSC deadline timer feature on our own when user
space provides the APIC as we have no clue about its features.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
Changes in v2:
- reorganized code to make the flow clearer
arch/x86/kvm/cpuid.c | 18 ++++++++----------
1 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
index 230f713..b7cdd3b 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
@@ -27,7 +27,6 @@ void kvm_update_cpuid(struct kvm_vcpu *vcpu)
{
struct kvm_cpuid_entry2 *best;
struct kvm_lapic *apic = vcpu->arch.apic;
- u32 timer_mode_mask;
best = kvm_find_cpuid_entry(vcpu, 1, 0);
if (!best)
@@ -40,15 +39,14 @@ void kvm_update_cpuid(struct kvm_vcpu *vcpu)
best->ecx |= bit(X86_FEATURE_OSXSAVE);
}
- if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
- best->function == 0x1) {
- best->ecx |= bit(X86_FEATURE_TSC_DEADLINE_TIMER);
- timer_mode_mask = 3 << 17;
- } else
- timer_mode_mask = 1 << 17;
-
- if (apic)
- apic->lapic_timer.timer_mode_mask = timer_mode_mask;
+ if (apic) {
+ if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
+ best->function == 0x1) {
+ best->ecx |= bit(X86_FEATURE_TSC_DEADLINE_TIMER);
+ apic->lapic_timer.timer_mode_mask = 3 << 17;
+ } else
+ apic->lapic_timer.timer_mode_mask = 1 << 17;
+ }
kvm_pmu_cpuid_update(vcpu);
}
--
1.7.3.4
next prev parent reply other threads:[~2011-12-21 10:25 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-12 0:32 [Regression, bisected] a3e06bbe8445f57eb949e6474c5a9b30f24d2057: KVM: emulate lapic tsc deadline timer for guest" Alexey Zaytsev
2011-12-12 6:13 ` Liu, Jinsong
2011-12-14 9:37 ` Alexey Zaytsev
2011-12-20 8:43 ` Alexey Zaytsev
2011-12-20 8:53 ` Liu, Jinsong
2011-12-20 8:58 ` Alexey Zaytsev
2011-12-20 9:26 ` Liu, Jinsong
2011-12-20 9:48 ` Avi Kivity
2011-12-20 9:51 ` Alexey Zaytsev
2011-12-20 18:58 ` Linus Torvalds
2011-12-20 19:21 ` Liu, Jinsong
2011-12-20 19:47 ` Alexey Zaytsev
2011-12-20 20:19 ` Liu, Jinsong
2011-12-20 20:22 ` Alexey Zaytsev
2011-12-20 20:26 ` Liu, Jinsong
2011-12-20 20:36 ` Alexey Zaytsev
2011-12-20 20:44 ` Liu, Jinsong
2011-12-21 9:18 ` Avi Kivity
2011-12-20 23:04 ` Jan Kiszka
2011-12-21 10:10 ` [PATCH] KVM: x86: Prevent exposing TSC deadline timer feature in the absence of in-kernel APIC Jan Kiszka
2011-12-21 10:25 ` Jan Kiszka [this message]
2011-12-21 10:35 ` [PATCH v2] " Avi Kivity
2011-12-21 10:41 ` Jan Kiszka
2011-12-21 10:44 ` Avi Kivity
2011-12-21 11:28 ` Jan Kiszka
2011-12-21 11:28 ` Jan Kiszka
2011-12-21 11:45 ` Avi Kivity
2011-12-21 11:45 ` Avi Kivity
2011-12-21 11:58 ` Jan Kiszka
2011-12-21 11:58 ` Jan Kiszka
2011-12-21 12:02 ` Avi Kivity
2011-12-21 12:02 ` Avi Kivity
2011-12-22 15:41 ` Liu, Jinsong
2011-12-25 12:37 ` Avi Kivity
2011-12-25 12:37 ` Avi Kivity
2011-12-26 8:11 ` Liu, Jinsong
2011-12-26 11:35 ` Avi Kivity
2011-12-26 11:35 ` Avi Kivity
2011-12-26 14:23 ` Liu, Jinsong
2011-12-21 10:41 ` Alexey Zaytsev
2011-12-20 19:05 ` [Regression, bisected] a3e06bbe8445f57eb949e6474c5a9b30f24d2057: KVM: emulate lapic tsc deadline timer for guest" Liu, Jinsong
2011-12-21 9:20 ` Avi Kivity
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EF1B423.8050707@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=alexey.zaytsev@gmail.com \
--cc=avi@redhat.com \
--cc=garrett@nexenta.com \
--cc=jinsong.liu@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.