From: "Liu, Jinsong" <jinsong.liu@intel.com> To: Jan Kiszka <jan.kiszka@siemens.com> Cc: Avi Kivity <avi@redhat.com>, Marcelo Tosatti <mtosatti@redhat.com>, Alexey Zaytsev <alexey.zaytsev@gmail.com>, kvm <kvm@vger.kernel.org>, "qemu-devel@nongnu.org" <qemu-devel@nongnu.org> Subject: RE: [PATCH 2/2] Expose tsc deadline timer cpuid to guest Date: Tue, 28 Feb 2012 10:30:56 +0000 [thread overview] Message-ID: <DE8DF0795D48FD4CA783C40EC82923350B8532@SHSMSX101.ccr.corp.intel.com> (raw) In-Reply-To: <4F4BBAEC.2040603@siemens.com> [-- Attachment #1: Type: text/plain, Size: 3123 bytes --] > > My point is that > > qemu-version-A [-cpu whatever] > > should provide the same VM as > > qemu-version-B -machine pc-A [-cpu whatever] > > specifically if you leave out the cpu specification. > > So the compat machine could establish a feature mask (e.g. append some > "-tsc_deadline" in this case). But, indeed, we need a new channel for > this. > Yes, if such requirement need to be satisfied, I agree we need a new channel to solve this kind of common issue. As for tsc deadline timer feature exposing, I write an updated patch as attached. 1). It exposes tsc deadline timer feature to guest if in-kernel irqchip is used and kvm has emulated tsc deadline timer; 2). It also authorizes user to control the feature exposing via a cpu feature flag; Thanks, Jinsong ==================== >From 5b7d5f459b621686e78e437010ce34748bcb9e8e Mon Sep 17 00:00:00 2001 From: Liu, Jinsong <jinsong.liu@intel.com> Date: Wed, 29 Feb 2012 01:53:15 +0800 Subject: [PATCH] Expose tsc deadline timer feature to guest It exposes tsc deadline timer feature to guest if in-kernel irqchip is used and kvm has emulated tsc deadline timer. It also authorizes user to control the feature exposing via a cpu feature flag. Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com> --- target-i386/cpu.h | 1 + target-i386/cpuid.c | 2 +- target-i386/kvm.c | 4 ++++ 3 files changed, 6 insertions(+), 1 deletions(-) diff --git a/target-i386/cpu.h b/target-i386/cpu.h index d92be5d..3409afe 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -399,6 +399,7 @@ #define CPUID_EXT_X2APIC (1 << 21) #define CPUID_EXT_MOVBE (1 << 22) #define CPUID_EXT_POPCNT (1 << 23) +#define CPUID_EXT_TSC_DEADLINE_TIMER (1 << 24) #define CPUID_EXT_XSAVE (1 << 26) #define CPUID_EXT_OSXSAVE (1 << 27) #define CPUID_EXT_HYPERVISOR (1 << 31) diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c index b9bfeaf..ac4b79c 100644 --- a/target-i386/cpuid.c +++ b/target-i386/cpuid.c @@ -50,7 +50,7 @@ static const char *ext_feature_name[] = { "fma", "cx16", "xtpr", "pdcm", NULL, NULL, "dca", "sse4.1|sse4_1", "sse4.2|sse4_2", "x2apic", "movbe", "popcnt", - NULL, "aes", "xsave", "osxsave", + "tsc_deadline", "aes", "xsave", "osxsave", "avx", NULL, NULL, "hypervisor", }; static const char *ext2_feature_name[] = { diff --git a/target-i386/kvm.c b/target-i386/kvm.c index 7079e87..2639699 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -370,6 +370,10 @@ int kvm_arch_init_vcpu(CPUState *env) i = env->cpuid_ext_features & CPUID_EXT_HYPERVISOR; env->cpuid_ext_features &= kvm_arch_get_supported_cpuid(s, 1, 0, R_ECX); env->cpuid_ext_features |= i; + if (!kvm_irqchip_in_kernel() || + !kvm_check_extension(s, KVM_CAP_TSC_DEADLINE_TIMER)) { + env->cpuid_ext_features &= ~CPUID_EXT_TSC_DEADLINE_TIMER; + } env->cpuid_ext2_features &= kvm_arch_get_supported_cpuid(s, 0x80000001, 0, R_EDX); -- 1.7.1 [-- Attachment #2: 0001-Expose-tsc-deadline-timer-feature-to-guest.patch --] [-- Type: application/octet-stream, Size: 2233 bytes --] From 5b7d5f459b621686e78e437010ce34748bcb9e8e Mon Sep 17 00:00:00 2001 From: Liu, Jinsong <jinsong.liu@intel.com> Date: Wed, 29 Feb 2012 01:53:15 +0800 Subject: [PATCH] Expose tsc deadline timer feature to guest It exposes tsc deadline timer feature to guest if in-kernel irqchip is used and kvm has emulated tsc deadline timer. It also authorizes user to control the feature exposing via a cpu feature flag. Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com> --- target-i386/cpu.h | 1 + target-i386/cpuid.c | 2 +- target-i386/kvm.c | 4 ++++ 3 files changed, 6 insertions(+), 1 deletions(-) diff --git a/target-i386/cpu.h b/target-i386/cpu.h index d92be5d..3409afe 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -399,6 +399,7 @@ #define CPUID_EXT_X2APIC (1 << 21) #define CPUID_EXT_MOVBE (1 << 22) #define CPUID_EXT_POPCNT (1 << 23) +#define CPUID_EXT_TSC_DEADLINE_TIMER (1 << 24) #define CPUID_EXT_XSAVE (1 << 26) #define CPUID_EXT_OSXSAVE (1 << 27) #define CPUID_EXT_HYPERVISOR (1 << 31) diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c index b9bfeaf..ac4b79c 100644 --- a/target-i386/cpuid.c +++ b/target-i386/cpuid.c @@ -50,7 +50,7 @@ static const char *ext_feature_name[] = { "fma", "cx16", "xtpr", "pdcm", NULL, NULL, "dca", "sse4.1|sse4_1", "sse4.2|sse4_2", "x2apic", "movbe", "popcnt", - NULL, "aes", "xsave", "osxsave", + "tsc_deadline", "aes", "xsave", "osxsave", "avx", NULL, NULL, "hypervisor", }; static const char *ext2_feature_name[] = { diff --git a/target-i386/kvm.c b/target-i386/kvm.c index 7079e87..2639699 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -370,6 +370,10 @@ int kvm_arch_init_vcpu(CPUState *env) i = env->cpuid_ext_features & CPUID_EXT_HYPERVISOR; env->cpuid_ext_features &= kvm_arch_get_supported_cpuid(s, 1, 0, R_ECX); env->cpuid_ext_features |= i; + if (!kvm_irqchip_in_kernel() || + !kvm_check_extension(s, KVM_CAP_TSC_DEADLINE_TIMER)) { + env->cpuid_ext_features &= ~CPUID_EXT_TSC_DEADLINE_TIMER; + } env->cpuid_ext2_features &= kvm_arch_get_supported_cpuid(s, 0x80000001, 0, R_EDX); -- 1.7.1
WARNING: multiple messages have this Message-ID (diff)
From: "Liu, Jinsong" <jinsong.liu@intel.com> To: Jan Kiszka <jan.kiszka@siemens.com> Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>, Marcelo Tosatti <mtosatti@redhat.com>, Avi Kivity <avi@redhat.com>, kvm <kvm@vger.kernel.org>, Alexey Zaytsev <alexey.zaytsev@gmail.com> Subject: Re: [Qemu-devel] [PATCH 2/2] Expose tsc deadline timer cpuid to guest Date: Tue, 28 Feb 2012 10:30:56 +0000 [thread overview] Message-ID: <DE8DF0795D48FD4CA783C40EC82923350B8532@SHSMSX101.ccr.corp.intel.com> (raw) In-Reply-To: <4F4BBAEC.2040603@siemens.com> [-- Attachment #1: Type: text/plain, Size: 3123 bytes --] > > My point is that > > qemu-version-A [-cpu whatever] > > should provide the same VM as > > qemu-version-B -machine pc-A [-cpu whatever] > > specifically if you leave out the cpu specification. > > So the compat machine could establish a feature mask (e.g. append some > "-tsc_deadline" in this case). But, indeed, we need a new channel for > this. > Yes, if such requirement need to be satisfied, I agree we need a new channel to solve this kind of common issue. As for tsc deadline timer feature exposing, I write an updated patch as attached. 1). It exposes tsc deadline timer feature to guest if in-kernel irqchip is used and kvm has emulated tsc deadline timer; 2). It also authorizes user to control the feature exposing via a cpu feature flag; Thanks, Jinsong ==================== >From 5b7d5f459b621686e78e437010ce34748bcb9e8e Mon Sep 17 00:00:00 2001 From: Liu, Jinsong <jinsong.liu@intel.com> Date: Wed, 29 Feb 2012 01:53:15 +0800 Subject: [PATCH] Expose tsc deadline timer feature to guest It exposes tsc deadline timer feature to guest if in-kernel irqchip is used and kvm has emulated tsc deadline timer. It also authorizes user to control the feature exposing via a cpu feature flag. Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com> --- target-i386/cpu.h | 1 + target-i386/cpuid.c | 2 +- target-i386/kvm.c | 4 ++++ 3 files changed, 6 insertions(+), 1 deletions(-) diff --git a/target-i386/cpu.h b/target-i386/cpu.h index d92be5d..3409afe 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -399,6 +399,7 @@ #define CPUID_EXT_X2APIC (1 << 21) #define CPUID_EXT_MOVBE (1 << 22) #define CPUID_EXT_POPCNT (1 << 23) +#define CPUID_EXT_TSC_DEADLINE_TIMER (1 << 24) #define CPUID_EXT_XSAVE (1 << 26) #define CPUID_EXT_OSXSAVE (1 << 27) #define CPUID_EXT_HYPERVISOR (1 << 31) diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c index b9bfeaf..ac4b79c 100644 --- a/target-i386/cpuid.c +++ b/target-i386/cpuid.c @@ -50,7 +50,7 @@ static const char *ext_feature_name[] = { "fma", "cx16", "xtpr", "pdcm", NULL, NULL, "dca", "sse4.1|sse4_1", "sse4.2|sse4_2", "x2apic", "movbe", "popcnt", - NULL, "aes", "xsave", "osxsave", + "tsc_deadline", "aes", "xsave", "osxsave", "avx", NULL, NULL, "hypervisor", }; static const char *ext2_feature_name[] = { diff --git a/target-i386/kvm.c b/target-i386/kvm.c index 7079e87..2639699 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -370,6 +370,10 @@ int kvm_arch_init_vcpu(CPUState *env) i = env->cpuid_ext_features & CPUID_EXT_HYPERVISOR; env->cpuid_ext_features &= kvm_arch_get_supported_cpuid(s, 1, 0, R_ECX); env->cpuid_ext_features |= i; + if (!kvm_irqchip_in_kernel() || + !kvm_check_extension(s, KVM_CAP_TSC_DEADLINE_TIMER)) { + env->cpuid_ext_features &= ~CPUID_EXT_TSC_DEADLINE_TIMER; + } env->cpuid_ext2_features &= kvm_arch_get_supported_cpuid(s, 0x80000001, 0, R_EDX); -- 1.7.1 [-- Attachment #2: 0001-Expose-tsc-deadline-timer-feature-to-guest.patch --] [-- Type: application/octet-stream, Size: 2233 bytes --] From 5b7d5f459b621686e78e437010ce34748bcb9e8e Mon Sep 17 00:00:00 2001 From: Liu, Jinsong <jinsong.liu@intel.com> Date: Wed, 29 Feb 2012 01:53:15 +0800 Subject: [PATCH] Expose tsc deadline timer feature to guest It exposes tsc deadline timer feature to guest if in-kernel irqchip is used and kvm has emulated tsc deadline timer. It also authorizes user to control the feature exposing via a cpu feature flag. Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com> --- target-i386/cpu.h | 1 + target-i386/cpuid.c | 2 +- target-i386/kvm.c | 4 ++++ 3 files changed, 6 insertions(+), 1 deletions(-) diff --git a/target-i386/cpu.h b/target-i386/cpu.h index d92be5d..3409afe 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -399,6 +399,7 @@ #define CPUID_EXT_X2APIC (1 << 21) #define CPUID_EXT_MOVBE (1 << 22) #define CPUID_EXT_POPCNT (1 << 23) +#define CPUID_EXT_TSC_DEADLINE_TIMER (1 << 24) #define CPUID_EXT_XSAVE (1 << 26) #define CPUID_EXT_OSXSAVE (1 << 27) #define CPUID_EXT_HYPERVISOR (1 << 31) diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c index b9bfeaf..ac4b79c 100644 --- a/target-i386/cpuid.c +++ b/target-i386/cpuid.c @@ -50,7 +50,7 @@ static const char *ext_feature_name[] = { "fma", "cx16", "xtpr", "pdcm", NULL, NULL, "dca", "sse4.1|sse4_1", "sse4.2|sse4_2", "x2apic", "movbe", "popcnt", - NULL, "aes", "xsave", "osxsave", + "tsc_deadline", "aes", "xsave", "osxsave", "avx", NULL, NULL, "hypervisor", }; static const char *ext2_feature_name[] = { diff --git a/target-i386/kvm.c b/target-i386/kvm.c index 7079e87..2639699 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -370,6 +370,10 @@ int kvm_arch_init_vcpu(CPUState *env) i = env->cpuid_ext_features & CPUID_EXT_HYPERVISOR; env->cpuid_ext_features &= kvm_arch_get_supported_cpuid(s, 1, 0, R_ECX); env->cpuid_ext_features |= i; + if (!kvm_irqchip_in_kernel() || + !kvm_check_extension(s, KVM_CAP_TSC_DEADLINE_TIMER)) { + env->cpuid_ext_features &= ~CPUID_EXT_TSC_DEADLINE_TIMER; + } env->cpuid_ext2_features &= kvm_arch_get_supported_cpuid(s, 0x80000001, 0, R_EDX); -- 1.7.1
next prev parent reply other threads:[~2012-02-28 10:31 UTC|newest] Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-12-28 21:55 [PATCH 2/2] Expose tsc deadline timer cpuid to guest Liu, Jinsong 2011-12-28 21:55 ` [Qemu-devel] " Liu, Jinsong 2012-01-04 16:48 ` Jan Kiszka 2012-01-04 16:48 ` [Qemu-devel] " Jan Kiszka 2012-01-05 20:07 ` Liu, Jinsong 2012-01-05 20:07 ` [Qemu-devel] " Liu, Jinsong 2012-01-05 20:34 ` Jan Kiszka 2012-01-05 20:34 ` [Qemu-devel] " Jan Kiszka 2012-01-07 18:23 ` Liu, Jinsong 2012-01-07 18:23 ` [Qemu-devel] " Liu, Jinsong 2012-01-08 21:24 ` Jan Kiszka 2012-01-08 21:24 ` [Qemu-devel] " Jan Kiszka 2012-02-27 16:05 ` Liu, Jinsong 2012-02-27 16:05 ` [Qemu-devel] " Liu, Jinsong 2012-02-27 17:18 ` Jan Kiszka 2012-02-27 17:18 ` [Qemu-devel] " Jan Kiszka 2012-02-28 10:30 ` Liu, Jinsong [this message] 2012-02-28 10:30 ` Liu, Jinsong 2012-03-06 7:49 ` Liu, Jinsong 2012-03-06 7:49 ` Liu, Jinsong 2012-03-06 10:14 ` Jan Kiszka 2012-03-06 10:14 ` Jan Kiszka 2012-03-09 18:27 ` Liu, Jinsong 2012-03-09 18:27 ` [Qemu-devel] " Liu, Jinsong 2012-03-09 18:56 ` Jan Kiszka 2012-03-09 18:56 ` Jan Kiszka 2012-03-09 19:09 ` Liu, Jinsong 2012-03-09 19:09 ` Liu, Jinsong 2012-03-09 20:52 ` Jan Kiszka 2012-03-09 20:52 ` Jan Kiszka 2012-03-10 1:07 ` Andreas Färber 2012-03-10 1:07 ` Andreas Färber 2012-03-11 18:54 ` Liu, Jinsong 2012-03-11 18:54 ` Liu, Jinsong 2012-03-12 17:21 ` Eduardo Habkost 2012-03-25 8:51 ` Liu, Jinsong 2012-03-25 8:51 ` [Qemu-devel] " Liu, Jinsong 2012-03-09 19:29 ` Liu, Jinsong 2012-03-09 19:29 ` [Qemu-devel] " Liu, Jinsong 2012-03-19 22:35 ` Rik van Riel 2012-03-20 12:53 ` Liu, Jinsong 2012-03-20 13:33 ` Eduardo Habkost 2012-03-20 13:33 ` Eduardo Habkost 2012-03-23 3:49 ` Liu, Jinsong 2012-03-23 3:49 ` Liu, Jinsong 2012-03-23 13:46 ` Eduardo Habkost 2012-03-23 13:46 ` Eduardo Habkost 2012-03-23 14:17 ` Liu, Jinsong 2012-03-23 14:17 ` Liu, Jinsong 2012-04-19 20:03 ` Eduardo Habkost 2012-04-20 10:12 ` Jan Kiszka 2012-04-20 15:00 ` Eduardo Habkost 2012-04-20 15:19 ` [Qemu-devel] " Jan Kiszka 2012-04-20 15:36 ` Eduardo Habkost 2012-04-21 7:23 ` Jan Kiszka 2012-04-23 14:48 ` Eduardo Habkost 2012-04-23 16:31 ` Jan Kiszka 2012-04-23 20:02 ` Eduardo Habkost 2012-04-24 16:06 ` Jan Kiszka 2012-04-24 17:19 ` [Qemu-devel] " Eduardo Habkost 2012-05-07 18:21 ` Semantics of "-cpu host" (was Re: [Qemu-devel] [PATCH 2/2] Expose tsc deadline timer cpuid to guest) Eduardo Habkost 2012-05-07 18:21 ` [Qemu-devel] Semantics of "-cpu host" (was " Eduardo Habkost 2012-05-08 0:58 ` Alexander Graf 2012-05-08 0:58 ` [Qemu-devel] " Alexander Graf 2012-05-08 20:14 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Eduardo Habkost 2012-05-08 20:14 ` [Qemu-devel] Semantics of "-cpu host" (was " Eduardo Habkost 2012-05-08 22:07 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Alexander Graf 2012-05-08 22:07 ` [Qemu-devel] Semantics of "-cpu host" (was " Alexander Graf 2012-05-09 8:14 ` Gleb Natapov 2012-05-09 8:14 ` [Qemu-devel] " Gleb Natapov 2012-05-09 8:42 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Alexander Graf 2012-05-09 8:42 ` [Qemu-devel] Semantics of "-cpu host" (was " Alexander Graf 2012-05-09 8:51 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Gleb Natapov 2012-05-09 8:51 ` [Qemu-devel] Semantics of "-cpu host" (was " Gleb Natapov 2012-05-09 9:05 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Alexander Graf 2012-05-09 9:05 ` [Qemu-devel] Semantics of "-cpu host" (was " Alexander Graf 2012-05-09 9:38 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Gleb Natapov 2012-05-09 9:38 ` [Qemu-devel] Semantics of "-cpu host" (was " Gleb Natapov 2012-05-09 9:54 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Alexander Graf 2012-05-09 9:54 ` [Qemu-devel] Semantics of "-cpu host" (was " Alexander Graf 2012-05-09 19:38 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Eduardo Habkost 2012-05-09 19:38 ` [Qemu-devel] Semantics of "-cpu host" (was " Eduardo Habkost 2012-05-09 20:30 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Alexander Graf 2012-05-09 20:30 ` [Qemu-devel] Semantics of "-cpu host" (was " Alexander Graf 2012-05-10 12:53 ` Gleb Natapov 2012-05-10 12:53 ` [Qemu-devel] " Gleb Natapov 2012-05-10 13:21 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Alexander Graf 2012-05-10 13:21 ` [Qemu-devel] Semantics of "-cpu host" (was " Alexander Graf 2012-05-10 13:39 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Gleb Natapov 2012-05-10 13:39 ` [Qemu-devel] Semantics of "-cpu host" (was " Gleb Natapov 2012-05-10 14:12 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Eduardo Habkost 2012-05-10 14:12 ` [Qemu-devel] Semantics of "-cpu host" (was " Eduardo Habkost 2012-05-09 7:16 ` Semantics of "-cpu host" (was Re: [Qemu-devel] " Andre Przywara 2012-05-09 7:16 ` [Qemu-devel] Semantics of "-cpu host" (was " Andre Przywara 2012-06-14 19:02 ` [Qemu-devel] [PATCH 2/2] Expose tsc deadline timer cpuid to guest Liu, Jinsong 2012-06-14 19:02 ` Liu, Jinsong 2012-06-14 19:12 ` Eduardo Habkost 2012-06-14 19:12 ` Eduardo Habkost 2012-06-14 19:18 ` Liu, Jinsong 2012-06-14 19:18 ` [Qemu-devel] " Liu, Jinsong
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=DE8DF0795D48FD4CA783C40EC82923350B8532@SHSMSX101.ccr.corp.intel.com \ --to=jinsong.liu@intel.com \ --cc=alexey.zaytsev@gmail.com \ --cc=avi@redhat.com \ --cc=jan.kiszka@siemens.com \ --cc=kvm@vger.kernel.org \ --cc=mtosatti@redhat.com \ --cc=qemu-devel@nongnu.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: linkBe 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.