* [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG @ 2017-05-09 13:27 Daniel P. Berrange 2017-05-09 13:27 ` [Qemu-devel] [PATCH v4 1/2] i386: rewrite way CPUID index is validated Daniel P. Berrange ` (2 more replies) 0 siblings, 3 replies; 15+ messages in thread From: Daniel P. Berrange @ 2017-05-09 13:27 UTC (permalink / raw) To: qemu-devel Cc: Paolo Bonzini, Richard Henderson, Eduardo Habkost, Daniel P. Berrange This enables report of a signature in CPUID for the TCG interpretor. Changed in v4: - Report 0x40000001 in EAX for 0x40000000 index (Eduardo) - Report all zeros for 0x40000001 index (Eduardo) - Make code style consistent when checking limits (Eduardo) Changed in v3: - Simplify CPU limit code still further (Eduardo) Changed in v2: - Rewrite the way we bounds check / cap the CPUID index to use a flat switch, instead of nested ifs (Eduardo) - Add a 'tcg-cpuid' property to allow it to be hidden (Eduardo) - Hide the TCG signature for old machine types - Force code to a no-op if tcg_enabled() is false (Eduardo) NB, I did not introduce a general 'hypervisor-cpuid' property to obsolete the existing 'kvm=off|on' -cpu property, since it appears impossible to get the back compat semantics right, as described in a previous reply. Daniel P. Berrange (2): i386: rewrite way CPUID index is validated i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf include/hw/i386/pc.h | 5 ++++ target/i386/cpu.c | 65 +++++++++++++++++++++++++++++++++++----------------- target/i386/cpu.h | 1 + 3 files changed, 50 insertions(+), 21 deletions(-) -- 2.9.3 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v4 1/2] i386: rewrite way CPUID index is validated 2017-05-09 13:27 [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG Daniel P. Berrange @ 2017-05-09 13:27 ` Daniel P. Berrange 2017-05-19 14:58 ` Kashyap Chamarthy 2017-05-09 13:27 ` [Qemu-devel] [PATCH v4 2/2] i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf Daniel P. Berrange 2017-05-09 14:05 ` [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG Richard Henderson 2 siblings, 1 reply; 15+ messages in thread From: Daniel P. Berrange @ 2017-05-09 13:27 UTC (permalink / raw) To: qemu-devel Cc: Paolo Bonzini, Richard Henderson, Eduardo Habkost, Daniel P. Berrange Change the nested if statements into a flat format, to make it clearer what validation / capping is being performed on different CPUID index values. NB this changes behaviour when "index > env->cpuid_xlevel2". This won't have any guest-visible effect because no there is no CPUID[0xC0000001] feature supported by TCG, and KVM code will never call cpu_x86_cpuid() with such an index value. Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- target/i386/cpu.c | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 13c0985..8cb4af4 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2626,28 +2626,23 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, X86CPU *cpu = x86_env_get_cpu(env); CPUState *cs = CPU(cpu); uint32_t pkg_offset; + uint32_t limit; - /* test if maximum index reached */ - if (index & 0x80000000) { - if (index > env->cpuid_xlevel) { - if (env->cpuid_xlevel2 > 0) { - /* Handle the Centaur's CPUID instruction. */ - if (index > env->cpuid_xlevel2) { - index = env->cpuid_xlevel2; - } else if (index < 0xC0000000) { - index = env->cpuid_xlevel; - } - } else { - /* Intel documentation states that invalid EAX input will - * return the same information as EAX=cpuid_level - * (Intel SDM Vol. 2A - Instruction Set Reference - CPUID) - */ - index = env->cpuid_level; - } - } + /* Calculate & apply limits for different index ranges */ + if (index >= 0xC0000000) { + limit = env->cpuid_xlevel2; + } else if (index >= 0x80000000) { + limit = env->cpuid_xlevel; } else { - if (index > env->cpuid_level) - index = env->cpuid_level; + limit = env->cpuid_level; + } + + if (index > limit) { + /* Intel documentation states that invalid EAX input will + * return the same information as EAX=cpuid_level + * (Intel SDM Vol. 2A - Instruction Set Reference - CPUID) + */ + index = env->cpuid_level; } switch(index) { -- 2.9.3 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 1/2] i386: rewrite way CPUID index is validated 2017-05-09 13:27 ` [Qemu-devel] [PATCH v4 1/2] i386: rewrite way CPUID index is validated Daniel P. Berrange @ 2017-05-19 14:58 ` Kashyap Chamarthy 2017-05-19 19:43 ` Eduardo Habkost 0 siblings, 1 reply; 15+ messages in thread From: Kashyap Chamarthy @ 2017-05-19 14:58 UTC (permalink / raw) To: Daniel P. Berrange Cc: qemu-devel, Paolo Bonzini, Eduardo Habkost, Richard Henderson On Tue, May 09, 2017 at 02:27:35PM +0100, Daniel P. Berrange wrote: > Change the nested if statements into a flat format, to make > it clearer what validation / capping is being performed on > different CPUID index values. > > NB this changes behaviour when "index > env->cpuid_xlevel2". > This won't have any guest-visible effect because no there is > no CPUID[0xC0000001] Nit: When applying, maybe the maintainer could fix the typo: "because no there is no" -> "because there is no" > feature supported by TCG, and KVM code > will never call cpu_x86_cpuid() with such an index value. > > Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> > Signed-off-by: Daniel P. Berrange <berrange@redhat.com> > --- > target/i386/cpu.c | 35 +++++++++++++++-------------------- > 1 file changed, 15 insertions(+), 20 deletions(-) > [...] -- /kashyap ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 1/2] i386: rewrite way CPUID index is validated 2017-05-19 14:58 ` Kashyap Chamarthy @ 2017-05-19 19:43 ` Eduardo Habkost 0 siblings, 0 replies; 15+ messages in thread From: Eduardo Habkost @ 2017-05-19 19:43 UTC (permalink / raw) To: Kashyap Chamarthy Cc: Daniel P. Berrange, qemu-devel, Paolo Bonzini, Richard Henderson On Fri, May 19, 2017 at 04:58:23PM +0200, Kashyap Chamarthy wrote: > On Tue, May 09, 2017 at 02:27:35PM +0100, Daniel P. Berrange wrote: > > Change the nested if statements into a flat format, to make > > it clearer what validation / capping is being performed on > > different CPUID index values. > > > > NB this changes behaviour when "index > env->cpuid_xlevel2". > > This won't have any guest-visible effect because no there is > > no CPUID[0xC0000001] > > Nit: When applying, maybe the maintainer could fix the typo: > > "because no there is no" -> "because there is no" This was already merged, unfortunately. Thanks for noting that, anyway. -- Eduardo ^ permalink raw reply [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v4 2/2] i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf 2017-05-09 13:27 [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG Daniel P. Berrange 2017-05-09 13:27 ` [Qemu-devel] [PATCH v4 1/2] i386: rewrite way CPUID index is validated Daniel P. Berrange @ 2017-05-09 13:27 ` Daniel P. Berrange 2017-05-09 14:05 ` [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG Richard Henderson 2 siblings, 0 replies; 15+ messages in thread From: Daniel P. Berrange @ 2017-05-09 13:27 UTC (permalink / raw) To: qemu-devel Cc: Paolo Bonzini, Richard Henderson, Eduardo Habkost, Daniel P. Berrange Currently when running KVM, we expose "KVMKVMKVM\0\0\0" in the 0x40000000 CPUID leaf. Other hypervisors (VMWare, HyperV, Xen, BHyve) all do the same thing, which leaves TCG as the odd one out. The CPUID signature is used by software to detect which virtual environment they are running in and (potentially) change behaviour in certain ways. For example, systemd supports a ConditionVirtualization= setting in unit files. The virt-what command can also report the virt type it is running on Currently both these apps have to resort to custom hacks like looking for 'fw-cfg' entry in the /proc/device-tree file to identify TCG. This change thus proposes a signature "TCGTCGTCGTCG" to be reported when running under TCG. To hide this, the -cpu option tcg-cpuid=off can be used. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- include/hw/i386/pc.h | 5 +++++ target/i386/cpu.c | 28 ++++++++++++++++++++++++++++ target/i386/cpu.h | 1 + 3 files changed, 34 insertions(+) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index f278b3a..3aec60f 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -376,6 +376,11 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *); #define PC_COMPAT_2_8 \ HW_COMPAT_2_8 \ {\ + .driver = TYPE_X86_CPU,\ + .property = "tcg-cpuid",\ + .value = "off",\ + },\ + {\ .driver = "kvmclock",\ .property = "x-mach-use-reliable-get-clock",\ .value = "off",\ diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 8cb4af4..edf451c 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2627,12 +2627,15 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, CPUState *cs = CPU(cpu); uint32_t pkg_offset; uint32_t limit; + uint32_t signature[3]; /* Calculate & apply limits for different index ranges */ if (index >= 0xC0000000) { limit = env->cpuid_xlevel2; } else if (index >= 0x80000000) { limit = env->cpuid_xlevel; + } else if (index >= 0x40000000) { + limit = 0x40000001; } else { limit = env->cpuid_level; } @@ -2867,6 +2870,30 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, } break; } + case 0x40000000: + /* + * CPUID code in kvm_arch_init_vcpu() ignores stuff + * set here, but we restrict to TCG none the less. + */ + if (tcg_enabled() && cpu->expose_tcg) { + memcpy(signature, "TCGTCGTCGTCG", 12); + *eax = 0x40000001; + *ebx = signature[0]; + *ecx = signature[1]; + *edx = signature[2]; + } else { + *eax = 0; + *ebx = 0; + *ecx = 0; + *edx = 0; + } + break; + case 0x40000001: + *eax = 0; + *ebx = 0; + *ecx = 0; + *edx = 0; + break; case 0x80000000: *eax = env->cpuid_xlevel; *ebx = env->cpuid_vendor1; @@ -4008,6 +4035,7 @@ static Property x86_cpu_properties[] = { DEFINE_PROP_BOOL("kvm-no-smi-migration", X86CPU, kvm_no_smi_migration, false), DEFINE_PROP_BOOL("vmware-cpuid-freq", X86CPU, vmware_cpuid_freq, true), + DEFINE_PROP_BOOL("tcg-cpuid", X86CPU, expose_tcg, true), DEFINE_PROP_END_OF_LIST() }; diff --git a/target/i386/cpu.h b/target/i386/cpu.h index c4602ca..c25f0ce 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -1216,6 +1216,7 @@ struct X86CPU { bool check_cpuid; bool enforce_cpuid; bool expose_kvm; + bool expose_tcg; bool migratable; bool max_features; /* Enable all supported features automatically */ uint32_t apic_id; -- 2.9.3 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG 2017-05-09 13:27 [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG Daniel P. Berrange 2017-05-09 13:27 ` [Qemu-devel] [PATCH v4 1/2] i386: rewrite way CPUID index is validated Daniel P. Berrange 2017-05-09 13:27 ` [Qemu-devel] [PATCH v4 2/2] i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf Daniel P. Berrange @ 2017-05-09 14:05 ` Richard Henderson 2017-05-09 14:08 ` Daniel P. Berrange 2017-05-09 14:13 ` Richard W.M. Jones 2 siblings, 2 replies; 15+ messages in thread From: Richard Henderson @ 2017-05-09 14:05 UTC (permalink / raw) To: Daniel P. Berrange, qemu-devel; +Cc: Paolo Bonzini, Eduardo Habkost On 05/09/2017 06:27 AM, Daniel P. Berrange wrote: > This enables report of a signature in CPUID for the TCG > interpretor. > > Changed in v4: > > - Report 0x40000001 in EAX for 0x40000000 index (Eduardo) > - Report all zeros for 0x40000001 index (Eduardo) > - Make code style consistent when checking limits (Eduardo) > > Changed in v3: > > - Simplify CPU limit code still further (Eduardo) > > Changed in v2: > > - Rewrite the way we bounds check / cap the CPUID index > to use a flat switch, instead of nested ifs (Eduardo) > - Add a 'tcg-cpuid' property to allow it to be hidden > (Eduardo) > - Hide the TCG signature for old machine types > - Force code to a no-op if tcg_enabled() is false (Eduardo) > > > NB, I did not introduce a general 'hypervisor-cpuid' property > to obsolete the existing 'kvm=off|on' -cpu property, since it > appears impossible to get the back compat semantics right, > as described in a previous reply. > > Daniel P. Berrange (2): > i386: rewrite way CPUID index is validated > i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf I probably should have commented earlier but... what's the point? If you want the guest os to actually do anything with this, what do you gain for advertising TCG over KVM? r~ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG 2017-05-09 14:05 ` [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG Richard Henderson @ 2017-05-09 14:08 ` Daniel P. Berrange 2017-05-09 14:13 ` Richard W.M. Jones 1 sibling, 0 replies; 15+ messages in thread From: Daniel P. Berrange @ 2017-05-09 14:08 UTC (permalink / raw) To: Richard Henderson; +Cc: qemu-devel, Paolo Bonzini, Eduardo Habkost On Tue, May 09, 2017 at 07:05:51AM -0700, Richard Henderson wrote: > On 05/09/2017 06:27 AM, Daniel P. Berrange wrote: > > This enables report of a signature in CPUID for the TCG > > interpretor. > > > > Changed in v4: > > > > - Report 0x40000001 in EAX for 0x40000000 index (Eduardo) > > - Report all zeros for 0x40000001 index (Eduardo) > > - Make code style consistent when checking limits (Eduardo) > > > > Changed in v3: > > > > - Simplify CPU limit code still further (Eduardo) > > > > Changed in v2: > > > > - Rewrite the way we bounds check / cap the CPUID index > > to use a flat switch, instead of nested ifs (Eduardo) > > - Add a 'tcg-cpuid' property to allow it to be hidden > > (Eduardo) > > - Hide the TCG signature for old machine types > > - Force code to a no-op if tcg_enabled() is false (Eduardo) > > > > > > NB, I did not introduce a general 'hypervisor-cpuid' property > > to obsolete the existing 'kvm=off|on' -cpu property, since it > > appears impossible to get the back compat semantics right, > > as described in a previous reply. > > > > Daniel P. Berrange (2): > > i386: rewrite way CPUID index is validated > > i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf > > I probably should have commented earlier but... what's the point? > > If you want the guest os to actually do anything with this, what do > you gain for advertising TCG over KVM? TCG doesn't expose any of the paravirt features that KVM does, so from that POV reporting "KVMKVMKVM" when running TCG would be wrong. As mentioned in the 2nd patch too, every hypervisor out there reports a distinct CPUID string, so again I think TCG should have its own identity, as it is different CPU emulation other users of QEMU (Xen, KVM, $whatever Windows and OS-X CPU accelerators are). Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG 2017-05-09 14:05 ` [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG Richard Henderson 2017-05-09 14:08 ` Daniel P. Berrange @ 2017-05-09 14:13 ` Richard W.M. Jones 2017-05-09 14:18 ` Richard Henderson 2017-05-09 20:12 ` Eduardo Habkost 1 sibling, 2 replies; 15+ messages in thread From: Richard W.M. Jones @ 2017-05-09 14:13 UTC (permalink / raw) To: Richard Henderson Cc: Daniel P. Berrange, qemu-devel, Paolo Bonzini, Eduardo Habkost On Tue, May 09, 2017 at 07:05:51AM -0700, Richard Henderson wrote: > On 05/09/2017 06:27 AM, Daniel P. Berrange wrote: > >This enables report of a signature in CPUID for the TCG > >interpretor. > > > >Changed in v4: > > > > - Report 0x40000001 in EAX for 0x40000000 index (Eduardo) > > - Report all zeros for 0x40000001 index (Eduardo) > > - Make code style consistent when checking limits (Eduardo) > > > >Changed in v3: > > > > - Simplify CPU limit code still further (Eduardo) > > > >Changed in v2: > > > > - Rewrite the way we bounds check / cap the CPUID index > > to use a flat switch, instead of nested ifs (Eduardo) > > - Add a 'tcg-cpuid' property to allow it to be hidden > > (Eduardo) > > - Hide the TCG signature for old machine types > > - Force code to a no-op if tcg_enabled() is false (Eduardo) > > > > > >NB, I did not introduce a general 'hypervisor-cpuid' property > >to obsolete the existing 'kvm=off|on' -cpu property, since it > >appears impossible to get the back compat semantics right, > >as described in a previous reply. > > > >Daniel P. Berrange (2): > > i386: rewrite way CPUID index is validated > > i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf > > I probably should have commented earlier but... what's the point? > > If you want the guest os to actually do anything with this, what do > you gain for advertising TCG over KVM? I can see this being useful from virt-what, since it would allow vendors to diagnose problems being caused by TCG (since as Dan mentions in the other reply and as you are already well acquainted with, TCG and KVM don't present or emulate quite the same thing). That said, I don't think it's anything more than a nice to have. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG 2017-05-09 14:13 ` Richard W.M. Jones @ 2017-05-09 14:18 ` Richard Henderson 2017-05-19 19:41 ` Eduardo Habkost 2017-05-09 20:12 ` Eduardo Habkost 1 sibling, 1 reply; 15+ messages in thread From: Richard Henderson @ 2017-05-09 14:18 UTC (permalink / raw) To: Richard W.M. Jones Cc: Daniel P. Berrange, qemu-devel, Paolo Bonzini, Eduardo Habkost On 05/09/2017 07:13 AM, Richard W.M. Jones wrote: > On Tue, May 09, 2017 at 07:05:51AM -0700, Richard Henderson wrote: >>> Daniel P. Berrange (2): >>> i386: rewrite way CPUID index is validated >>> i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf >> >> I probably should have commented earlier but... what's the point? >> >> If you want the guest os to actually do anything with this, what do >> you gain for advertising TCG over KVM? > > I can see this being useful from virt-what, since it would allow > vendors to diagnose problems being caused by TCG ... Thanks, that's an excellent point. r~ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG 2017-05-09 14:18 ` Richard Henderson @ 2017-05-19 19:41 ` Eduardo Habkost 2017-05-19 19:51 ` Richard W.M. Jones ` (2 more replies) 0 siblings, 3 replies; 15+ messages in thread From: Eduardo Habkost @ 2017-05-19 19:41 UTC (permalink / raw) To: Richard Henderson; +Cc: Richard W.M. Jones, Paolo Bonzini, qemu-devel On Tue, May 09, 2017 at 07:18:07AM -0700, Richard Henderson wrote: > On 05/09/2017 07:13 AM, Richard W.M. Jones wrote: > > On Tue, May 09, 2017 at 07:05:51AM -0700, Richard Henderson wrote: > > > > Daniel P. Berrange (2): > > > > i386: rewrite way CPUID index is validated > > > > i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf > > > > > > I probably should have commented earlier but... what's the point? > > > > > > If you want the guest os to actually do anything with this, what do > > > you gain for advertising TCG over KVM? > > > > I can see this being useful from virt-what, since it would allow > > vendors to diagnose problems being caused by TCG ... > > Thanks, that's an excellent point. Richard, Paolo: I would like to merge this. Do you agree? -- Eduardo ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG 2017-05-19 19:41 ` Eduardo Habkost @ 2017-05-19 19:51 ` Richard W.M. Jones 2017-05-19 19:51 ` Richard W.M. Jones 2017-06-14 10:18 ` Daniel P. Berrange 2 siblings, 0 replies; 15+ messages in thread From: Richard W.M. Jones @ 2017-05-19 19:51 UTC (permalink / raw) To: Eduardo Habkost; +Cc: Richard Henderson, Paolo Bonzini, qemu-devel On Fri, May 19, 2017 at 04:41:46PM -0300, Eduardo Habkost wrote: > On Tue, May 09, 2017 at 07:18:07AM -0700, Richard Henderson wrote: > > On 05/09/2017 07:13 AM, Richard W.M. Jones wrote: > > > On Tue, May 09, 2017 at 07:05:51AM -0700, Richard Henderson wrote: > > > > > Daniel P. Berrange (2): > > > > > i386: rewrite way CPUID index is validated > > > > > i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf > > > > > > > > I probably should have commented earlier but... what's the point? > > > > > > > > If you want the guest os to actually do anything with this, what do > > > > you gain for advertising TCG over KVM? > > > > > > I can see this being useful from virt-what, since it would allow > > > vendors to diagnose problems being caused by TCG ... > > > > Thanks, that's an excellent point. > > Richard, Paolo: I would like to merge this. Do you agree? It's fine by me but note that I didn't review the patch. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG 2017-05-19 19:41 ` Eduardo Habkost 2017-05-19 19:51 ` Richard W.M. Jones @ 2017-05-19 19:51 ` Richard W.M. Jones 2017-06-14 10:18 ` Daniel P. Berrange 2 siblings, 0 replies; 15+ messages in thread From: Richard W.M. Jones @ 2017-05-19 19:51 UTC (permalink / raw) To: Eduardo Habkost; +Cc: Richard Henderson, Paolo Bonzini, qemu-devel On Fri, May 19, 2017 at 04:41:46PM -0300, Eduardo Habkost wrote: > On Tue, May 09, 2017 at 07:18:07AM -0700, Richard Henderson wrote: > > On 05/09/2017 07:13 AM, Richard W.M. Jones wrote: > > > On Tue, May 09, 2017 at 07:05:51AM -0700, Richard Henderson wrote: > > > > > Daniel P. Berrange (2): > > > > > i386: rewrite way CPUID index is validated > > > > > i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf > > > > > > > > I probably should have commented earlier but... what's the point? > > > > > > > > If you want the guest os to actually do anything with this, what do > > > > you gain for advertising TCG over KVM? > > > > > > I can see this being useful from virt-what, since it would allow > > > vendors to diagnose problems being caused by TCG ... > > > > Thanks, that's an excellent point. > > Richard, Paolo: I would like to merge this. Do you agree? Ah, other Richard, OK! Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG 2017-05-19 19:41 ` Eduardo Habkost 2017-05-19 19:51 ` Richard W.M. Jones 2017-05-19 19:51 ` Richard W.M. Jones @ 2017-06-14 10:18 ` Daniel P. Berrange 2017-06-20 12:02 ` Eduardo Habkost 2 siblings, 1 reply; 15+ messages in thread From: Daniel P. Berrange @ 2017-06-14 10:18 UTC (permalink / raw) To: Eduardo Habkost Cc: Richard Henderson, Paolo Bonzini, Richard W.M. Jones, qemu-devel On Fri, May 19, 2017 at 04:41:46PM -0300, Eduardo Habkost wrote: > On Tue, May 09, 2017 at 07:18:07AM -0700, Richard Henderson wrote: > > On 05/09/2017 07:13 AM, Richard W.M. Jones wrote: > > > On Tue, May 09, 2017 at 07:05:51AM -0700, Richard Henderson wrote: > > > > > Daniel P. Berrange (2): > > > > > i386: rewrite way CPUID index is validated > > > > > i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf > > > > > > > > I probably should have commented earlier but... what's the point? > > > > > > > > If you want the guest os to actually do anything with this, what do > > > > you gain for advertising TCG over KVM? > > > > > > I can see this being useful from virt-what, since it would allow > > > vendors to diagnose problems being caused by TCG ... > > > > Thanks, that's an excellent point. > > Richard, Paolo: I would like to merge this. Do you agree? ping, since there's no objections can we merge this now ? Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG 2017-06-14 10:18 ` Daniel P. Berrange @ 2017-06-20 12:02 ` Eduardo Habkost 0 siblings, 0 replies; 15+ messages in thread From: Eduardo Habkost @ 2017-06-20 12:02 UTC (permalink / raw) To: Daniel P. Berrange Cc: Richard Henderson, Paolo Bonzini, Richard W.M. Jones, qemu-devel On Wed, Jun 14, 2017 at 11:18:46AM +0100, Daniel P. Berrange wrote: > On Fri, May 19, 2017 at 04:41:46PM -0300, Eduardo Habkost wrote: > > On Tue, May 09, 2017 at 07:18:07AM -0700, Richard Henderson wrote: > > > On 05/09/2017 07:13 AM, Richard W.M. Jones wrote: > > > > On Tue, May 09, 2017 at 07:05:51AM -0700, Richard Henderson wrote: > > > > > > Daniel P. Berrange (2): > > > > > > i386: rewrite way CPUID index is validated > > > > > > i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf > > > > > > > > > > I probably should have commented earlier but... what's the point? > > > > > > > > > > If you want the guest os to actually do anything with this, what do > > > > > you gain for advertising TCG over KVM? > > > > > > > > I can see this being useful from virt-what, since it would allow > > > > vendors to diagnose problems being caused by TCG ... > > > > > > Thanks, that's an excellent point. > > > > Richard, Paolo: I would like to merge this. Do you agree? > > ping, since there's no objections can we merge this now ? Queued on x86-next. Thanks! -- Eduardo ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG 2017-05-09 14:13 ` Richard W.M. Jones 2017-05-09 14:18 ` Richard Henderson @ 2017-05-09 20:12 ` Eduardo Habkost 1 sibling, 0 replies; 15+ messages in thread From: Eduardo Habkost @ 2017-05-09 20:12 UTC (permalink / raw) To: Richard W.M. Jones Cc: Richard Henderson, Daniel P. Berrange, qemu-devel, Paolo Bonzini On Tue, May 09, 2017 at 03:13:37PM +0100, Richard W.M. Jones wrote: > On Tue, May 09, 2017 at 07:05:51AM -0700, Richard Henderson wrote: > > On 05/09/2017 06:27 AM, Daniel P. Berrange wrote: > > >This enables report of a signature in CPUID for the TCG > > >interpretor. > > > > > >Changed in v4: > > > > > > - Report 0x40000001 in EAX for 0x40000000 index (Eduardo) > > > - Report all zeros for 0x40000001 index (Eduardo) > > > - Make code style consistent when checking limits (Eduardo) > > > > > >Changed in v3: > > > > > > - Simplify CPU limit code still further (Eduardo) > > > > > >Changed in v2: > > > > > > - Rewrite the way we bounds check / cap the CPUID index > > > to use a flat switch, instead of nested ifs (Eduardo) > > > - Add a 'tcg-cpuid' property to allow it to be hidden > > > (Eduardo) > > > - Hide the TCG signature for old machine types > > > - Force code to a no-op if tcg_enabled() is false (Eduardo) > > > > > > > > >NB, I did not introduce a general 'hypervisor-cpuid' property > > >to obsolete the existing 'kvm=off|on' -cpu property, since it > > >appears impossible to get the back compat semantics right, > > >as described in a previous reply. > > > > > >Daniel P. Berrange (2): > > > i386: rewrite way CPUID index is validated > > > i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf > > > > I probably should have commented earlier but... what's the point? > > > > If you want the guest os to actually do anything with this, what do > > you gain for advertising TCG over KVM? > > I can see this being useful from virt-what, since it would allow > vendors to diagnose problems being caused by TCG (since as Dan > mentions in the other reply and as you are already well acquainted > with, TCG and KVM don't present or emulate quite the same thing). > > That said, I don't think it's anything more than a nice to have. We also have systemd-detect-virt, and the ConditionVirtualization option in systemd. -- Eduardo ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2017-06-20 12:03 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-05-09 13:27 [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG Daniel P. Berrange 2017-05-09 13:27 ` [Qemu-devel] [PATCH v4 1/2] i386: rewrite way CPUID index is validated Daniel P. Berrange 2017-05-19 14:58 ` Kashyap Chamarthy 2017-05-19 19:43 ` Eduardo Habkost 2017-05-09 13:27 ` [Qemu-devel] [PATCH v4 2/2] i386: expose "TCGTCGTCGTCG" in the 0x40000000 CPUID leaf Daniel P. Berrange 2017-05-09 14:05 ` [Qemu-devel] [PATCH v4 0/2] Support CPUID signature for TCG Richard Henderson 2017-05-09 14:08 ` Daniel P. Berrange 2017-05-09 14:13 ` Richard W.M. Jones 2017-05-09 14:18 ` Richard Henderson 2017-05-19 19:41 ` Eduardo Habkost 2017-05-19 19:51 ` Richard W.M. Jones 2017-05-19 19:51 ` Richard W.M. Jones 2017-06-14 10:18 ` Daniel P. Berrange 2017-06-20 12:02 ` Eduardo Habkost 2017-05-09 20:12 ` Eduardo Habkost
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).