[Qemu-devel] [PATCH] i386/kvm: add support for Hyper-V TLB flush

2018-06-10 Thread Vitaly Kuznetsov
or the maximum vCPU index in the vCPU set requires flushing is less than 64). Signed-off-by: Vitaly Kuznetsov --- linux-headers/linux/kvm.h | 1 + target/i386/cpu.c | 1 + target/i386/cpu.h | 1 + target/i386/hyperv-proto.h | 1 + target/i386/kvm.c | 15

Re: [Qemu-devel] [PATCH v5 0/1] i386/kvm: TSC page clocksource for Hyper-V-on-KVM fixes

2018-05-02 Thread Vitaly Kuznetsov
Vitaly Kuznetsov <vkuzn...@redhat.com> writes: > Changes since v4: > - Rebase on top of Roman's patches. > - Drop PATCH2 as it is no longer needed (after adding explicit > hv_frequencies). > > Previously, Ladi was working on enabling TSC page clocksource for nested &g

[Qemu-devel] [PATCH 2/2] i386/kvm: lower requirements for Hyper-V frequency MSRs exposure

2018-03-12 Thread Vitaly Kuznetsov
-off-by: Vitaly Kuznetsov <vkuzn...@redhat.com> --- target/i386/kvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 21e06deaf1..43c521f61a 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -646,7 +646,7 @@ stat

[Qemu-devel] [PATCH 1/2] i386/kvm: add support for Hyper-V reenlightenment MSRs

2018-03-12 Thread Vitaly Kuznetsov
KVM recently gained support for Hyper-V Reenlightenment MSRs which are required to make KVM-on-Hyper-V enable TSC page clocksource to its guests when INVTSC is not passed to it (and it is not passed by default in Qemu as it effectively blocks migration). Signed-off-by: Vitaly Kuznetsov <vk

[Qemu-devel] [PATCH 0/2] i386/kvm: TSC page clocksource for Hyper-V-on-KVM fixes

2018-03-12 Thread Vitaly Kuznetsov
MSRs and expose frequency MSRs even without INVTSC to make things work. [My first patches for Qemu, please be nice :-) ] Vitaly Kuznetsov (2): i386/kvm: add support for Hyper-V reenlightenment MSRs i386/kvm: lower requirements for Hyper-V frequency MSRs exposure target/i386/cpu.h

[Qemu-devel] [PATCH v5 0/1] i386/kvm: TSC page clocksource for Hyper-V-on-KVM fixes

2018-04-11 Thread Vitaly Kuznetsov
to migrate nested environments but rudimentary support we have there is enough. Enable Hyper-V reenlightenment MSRs to make things work. Vitaly Kuznetsov (1): i386/kvm: add support for Hyper-V reenlightenment MSRs target/i386/cpu.c | 4 +++- target/i386/cpu.h | 4 target

[Qemu-devel] [PATCH v5 1/1] i386/kvm: add support for Hyper-V reenlightenment MSRs

2018-04-11 Thread Vitaly Kuznetsov
KVM recently gained support for Hyper-V Reenlightenment MSRs which are required to make KVM-on-Hyper-V enable TSC page clocksource to its guests when INVTSC is not passed to it (and it is not passed by default in Qemu as it effectively blocks migration). Signed-off-by: Vitaly Kuznetsov <vk

[Qemu-devel] [PATCH v2 2/2] i386/kvm: lower requirements for Hyper-V frequency MSRs exposure

2018-03-16 Thread Vitaly Kuznetsov
-off-by: Vitaly Kuznetsov <vkuzn...@redhat.com> --- target/i386/kvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index accf50eac3..a6d1210f46 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -650,7 +650,7 @@ stat

Re: [Qemu-devel] [PATCH 2/2] i386/kvm: lower requirements for Hyper-V frequency MSRs exposure

2018-03-16 Thread Vitaly Kuznetsov
Paolo Bonzini <pbonz...@redhat.com> writes: > On 16/03/2018 16:05, Vitaly Kuznetsov wrote: >>>> >>>> -if (has_msr_hv_frequencies && tsc_is_stable_and_known(env)) { >>>> +if (has_msr_hv_frequencies &&a

[Qemu-devel] [PATCH v2 0/2] i386/kvm: TSC page clocksource for Hyper-V-on-KVM fixes

2018-03-16 Thread Vitaly Kuznetsov
environments but rudimentary support we have there (kvm/queue only currently) is enough. Enable Hyper-V reenlightenment MSRs and expose frequency MSRs even without INVTSC to make things work. Vitaly Kuznetsov (2): i386/kvm: add support for Hyper-V reenlightenment MSRs i386/kvm: lower requirements

[Qemu-devel] [PATCH v2 1/2] i386/kvm: add support for Hyper-V reenlightenment MSRs

2018-03-16 Thread Vitaly Kuznetsov
KVM recently gained support for Hyper-V Reenlightenment MSRs which are required to make KVM-on-Hyper-V enable TSC page clocksource to its guests when INVTSC is not passed to it (and it is not passed by default in Qemu as it effectively blocks migration). Signed-off-by: Vitaly Kuznetsov <vk

Re: [Qemu-devel] [PATCH 2/2] i386/kvm: lower requirements for Hyper-V frequency MSRs exposure

2018-03-16 Thread Vitaly Kuznetsov
Paolo Bonzini <pbonz...@redhat.com> writes: > On 12/03/2018 16:12, Vitaly Kuznetsov wrote: >> >> -if (has_msr_hv_frequencies && tsc_is_stable_and_known(env)) { >> +if (has_msr_hv_frequencies && env->tsc_khz) { > > Should this

Re: [Qemu-devel] [PATCH 1/2] i386/kvm: add support for Hyper-V reenlightenment MSRs

2018-03-16 Thread Vitaly Kuznetsov
Paolo Bonzini <pbonz...@redhat.com> writes: > On 12/03/2018 16:12, Vitaly Kuznetsov wrote: [snip] >> @@ -2294,6 +2318,15 @@ static int kvm_get_msrs(X86CPU *cpu) >> env->msr_hv_stimer_count[(index - HV_X64_MSR_STIMER0_COUNT)/2] = >>

[Qemu-devel] [PATCH v4 2/2] i386/kvm: expose Hyper-V frequency MSRs with reenlightenment

2018-03-22 Thread Vitaly Kuznetsov
We can also expose Hyper-V frequency MSRs when reenlightenment feature is enabled and TSC frequency is known, Hyper-V on KVM will provide stable TSC page clocksources to its guests. Signed-off-by: Vitaly Kuznetsov <vkuzn...@redhat.com> --- - Expose frequency MSRs only when either

[Qemu-devel] [PATCH v4 0/2] i386/kvm: TSC page clocksource for Hyper-V-on-KVM fixes

2018-03-22 Thread Vitaly Kuznetsov
per-V reenlightenment MSRs and expose frequency MSRs even without INVTSC to make things work. Vitaly Kuznetsov (2): i386/kvm: add support for Hyper-V reenlightenment MSRs i386/kvm: expose Hyper-V frequency MSRs with reenlightenment target/i386/cpu.c | 4 +++- target/i386/cp

[Qemu-devel] [PATCH v4 1/2] i386/kvm: add support for Hyper-V reenlightenment MSRs

2018-03-22 Thread Vitaly Kuznetsov
KVM recently gained support for Hyper-V Reenlightenment MSRs which are required to make KVM-on-Hyper-V enable TSC page clocksource to its guests when INVTSC is not passed to it (and it is not passed by default in Qemu as it effectively blocks migration). Signed-off-by: Vitaly Kuznetsov <vk

Re: [Qemu-devel] [PATCH v3 1/2] i386/kvm: add support for Hyper-V reenlightenment MSRs

2018-03-22 Thread Vitaly Kuznetsov
Marcelo Tosatti <mtosa...@redhat.com> writes: > On Tue, Mar 20, 2018 at 06:34:59PM +0100, Vitaly Kuznetsov wrote: >> KVM recently gained support for Hyper-V Reenlightenment MSRs which are >> required to make KVM-on-Hyper-V enable TSC page clocksource to its guests >>

Re: [Qemu-devel] [PATCH v2 1/2] i386/kvm: add support for Hyper-V reenlightenment MSRs

2018-03-19 Thread Vitaly Kuznetsov
Roman Kagan <rka...@virtuozzo.com> writes: > On Fri, Mar 16, 2018 at 06:00:19PM +0100, Vitaly Kuznetsov wrote: >> KVM recently gained support for Hyper-V Reenlightenment MSRs which are >> required to make KVM-on-Hyper-V enable TSC page clocksource to its guests >>

Re: [Qemu-devel] [PATCH v3 2/2] i386/kvm: lower requirements for Hyper-V frequency MSRs exposure

2018-03-21 Thread Vitaly Kuznetsov
Roman Kagan <rka...@virtuozzo.com> writes: > On Tue, Mar 20, 2018 at 06:35:00PM +0100, Vitaly Kuznetsov wrote: >> Requiring tsc_is_stable_and_known() is too restrictive: even without INVTCS >> nested Hyper-V-on-KVM enables TSC pages for its guests e.g. when >> Reenl

Re: [Qemu-devel] [PATCH v4 2/2] i386/kvm: expose Hyper-V frequency MSRs with reenlightenment

2018-03-23 Thread Vitaly Kuznetsov
Eduardo Habkost <ehabk...@redhat.com> writes: > On Thu, Mar 22, 2018 at 02:13:58PM +0100, Vitaly Kuznetsov wrote: >> We can also expose Hyper-V frequency MSRs when reenlightenment feature is >> enabled and TSC frequency is known, Hyper-V on KVM will provide stable TSC >&g

Re: [Qemu-devel] [PATCH v3 2/2] i386/kvm: lower requirements for Hyper-V frequency MSRs exposure

2018-03-21 Thread Vitaly Kuznetsov
Paolo Bonzini <pbonz...@redhat.com> writes: > On 20/03/2018 18:35, Vitaly Kuznetsov wrote: >> +if (has_msr_hv_frequencies && env->tsc_khz) { >> env->features[FEAT_HYPERV_EAX] |= HV_ACCESS_FREQUENCY_MSRS; >>

[Qemu-devel] [PATCH v3 1/2] i386/kvm: add support for Hyper-V reenlightenment MSRs

2018-03-20 Thread Vitaly Kuznetsov
KVM recently gained support for Hyper-V Reenlightenment MSRs which are required to make KVM-on-Hyper-V enable TSC page clocksource to its guests when INVTSC is not passed to it (and it is not passed by default in Qemu as it effectively blocks migration). Signed-off-by: Vitaly Kuznetsov <vk

[Qemu-devel] [PATCH v3 0/2] i386/kvm: TSC page clocksource for Hyper-V-on-KVM fixes

2018-03-20 Thread Vitaly Kuznetsov
to migrate nested environments but rudimentary support we have there (kvm/queue only currently) is enough. Enable Hyper-V reenlightenment MSRs and expose frequency MSRs even without INVTSC to make things work. Vitaly Kuznetsov (2): i386/kvm: add support for Hyper-V reenlightenment MSRs i386/kvm

[Qemu-devel] [PATCH v3 2/2] i386/kvm: lower requirements for Hyper-V frequency MSRs exposure

2018-03-20 Thread Vitaly Kuznetsov
-off-by: Vitaly Kuznetsov <vkuzn...@redhat.com> --- target/i386/kvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 7d9f9ca0b1..74fc3d3b2c 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -651,7 +651,7 @@ stat

Re: [Qemu-devel] [PATCH] i386/kvm: add support for Hyper-V TLB flush

2018-06-29 Thread Vitaly Kuznetsov
Vitaly Kuznetsov writes: > Add support for Hyper-V TLB flush which recently got added to KVM. > > Just like regular Hyper-V we announce HV_EX_PROCESSOR_MASKS_RECOMMENDED > regardless of how many vCPUs we have. Windows is 'smart' and uses less > expensive non-EX Hypercall whenever

[Qemu-devel] [PATCH 2/2] i386/kvm: add support for Hyper-V IPI send

2018-10-08 Thread Vitaly Kuznetsov
Hyper-V PV IPI support is merged to KVM, enable the feature in Qemu. When enabled, this allows Windows guests to send IPIs to other vCPUs with a single hypercall even when there are >64 vCPUs in the request. Signed-off-by: Vitaly Kuznetsov --- target/i386/cpu.c | 1 + target/i

[Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue)

2018-10-08 Thread Vitaly Kuznetsov
This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR, KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI. Signed-off-by: Vitaly Kuznetsov --- linux-headers/linux/kvm.h | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/linux-headers/linux/kvm.h b/linux

[Qemu-devel] [PATCH 0/2] i386/kvm: enable Hyper-V PV IPI mechanism

2018-10-08 Thread Vitaly Kuznetsov
Hyper-V PV IPI enlightenment was merged to KVM (kvm/queue currently). Support the feature enablement in Qemu. Vitaly Kuznetsov (2): linux-headers: update to pre-4.20 (kvm/queue) i386/kvm: add support for Hyper-V IPI send linux-headers/linux/kvm.h | 7 +-- target/i386/cpu.c

Re: [Qemu-devel] [PATCH V6 1/5] target/i386 : add coalesced pio support

2018-10-17 Thread Vitaly Kuznetsov
Peng Hao writes: > diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h > index 83ba4eb..b5d4289 100644 > --- a/linux-headers/linux/kvm.h > +++ b/linux-headers/linux/kvm.h > @@ -420,13 +420,19 @@ struct kvm_run { > struct kvm_coalesced_mmio_zone { > __u64 addr; > __u32

Re: [Qemu-devel] [PATCH 2/2] x86: hv_evmcs CPU flag support

2018-10-22 Thread Vitaly Kuznetsov
Roman Kagan writes: > On Fri, Oct 19, 2018 at 01:14:32PM +0200, Vitaly Kuznetsov wrote: >> --- a/target/i386/kvm.c >> +++ b/target/i386/kvm.c >> @@ -798,6 +798,7 @@ int kvm_arch_init_vcpu(CPUState *cs) >> uint32_t unused; >> struct kvm_cpuid_entry2

[Qemu-devel] [PATCH v2 1/2] linux-headers: update

2018-10-22 Thread Vitaly Kuznetsov
Update to kvm/next commit 1e58e5e59148 ("KVM: VMX: enable nested virtualization by default"). kvm_put_vcpu_events() needs to be fixed as 'pad' was renamed to 'pending' in 'struct kvm_vcpu_events' Signed-off-by: Vitaly Kuznetsov --- linux-headers/asm-powerpc/kvm.h | 1 + linux-heade

[Qemu-devel] [PATCH v2 0/2] i386/kvm: add support for Hyper-V Enlightened VMCS

2018-10-22 Thread Vitaly Kuznetsov
of the series is posted for completeness only. Vitaly Kuznetsov (2): linux-headers: update x86: hv_evmcs CPU flag support linux-headers/asm-powerpc/kvm.h | 1 + linux-headers/asm-x86/kvm.h | 8 ++-- linux-headers/linux/kvm.h | 16 ++-- target/i386/cpu.c

[Qemu-devel] [PATCH v2 2/2] x86: hv_evmcs CPU flag support

2018-10-22 Thread Vitaly Kuznetsov
Adds a new CPU flag to enable the Enlightened VMCS KVM feature. QEMU enables KVM_CAP_HYPERV_ENLIGHTENED_VMCS and gets back the version to be advertised in lower 16 bits of CPUID.0x400A:EAX. Suggested-by: Ladi Prosek Signed-off-by: Vitaly Kuznetsov --- Changes since v1: - Throw away

Re: [Qemu-devel] [PATCH v2 2/2] x86: hv_evmcs CPU flag support

2018-10-30 Thread Vitaly Kuznetsov
Roman Kagan writes: > On Mon, Oct 22, 2018 at 06:55:06PM +0200, Vitaly Kuznetsov wrote: >> Adds a new CPU flag to enable the Enlightened VMCS KVM feature. >> QEMU enables KVM_CAP_HYPERV_ENLIGHTENED_VMCS and gets back the >> version to be advertised in lower 16 bits of

[Qemu-devel] [PATCH 0/2] i386/kvm: add support for Hyper-V Enlightened VMCS

2018-10-19 Thread Vitaly Kuznetsov
Hyper-V Enlightened VMCS feature was merged to KVM, enable it in Qemu. The feature gives us a significant performance boost for Hyper-V on KVM deployments. The first patch of the series is posted for completeness only. Vitaly Kuznetsov (2): linux-headers: update x86: hv_evmcs CPU flag

[Qemu-devel] [PATCH 1/2] linux-headers: update

2018-10-19 Thread Vitaly Kuznetsov
Update to kvm/next commit 1e58e5e59148 ("KVM: VMX: enable nested virtualization by default"). kvm_put_vcpu_events() needs to be fixed as 'pad' was renamed to 'pending' in 'struct kvm_vcpu_events' Signed-off-by: Vitaly Kuznetsov --- linux-headers/asm-powerpc/kvm.h | 1 + linux-heade

[Qemu-devel] [PATCH 2/2] x86: hv_evmcs CPU flag support

2018-10-19 Thread Vitaly Kuznetsov
Adds a new CPU flag to enable the Enlightened VMCS KVM feature. QEMU enables KVM_CAP_HYPERV_ENLIGHTENED_VMCS and gets back the version to be advertised in lower 16 bits of CPUID.0x400A:EAX. Suggested-by: Ladi Prosek Signed-off-by: Vitaly Kuznetsov --- target/i386/cpu.c | 1

[Qemu-devel] [PATCH v2 1/2] linux-headers: update to pre-4.20 (kvm/queue)

2018-10-09 Thread Vitaly Kuznetsov
This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR, KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI. Signed-off-by: Vitaly Kuznetsov --- linux-headers/linux/kvm.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h

[Qemu-devel] [PATCH v2 0/2] i386/kvm: enable Hyper-V PV IPI mechanism

2018-10-09 Thread Vitaly Kuznetsov
Hyper-V PV IPI enlightenment was merged to KVM (kvm/queue currently). Support the feature enablement in Qemu. Changes since v1 [Roman Kagan]: - Strip kvm.h with 'make headers_install' before putting to Qemu. - Add Reviewed-by: to PATCH2 Vitaly Kuznetsov (2): linux-headers: update to pre-4.20

Re: [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue)

2018-10-09 Thread Vitaly Kuznetsov
Roman Kagan writes: > On Mon, Oct 08, 2018 at 01:27:25PM +0200, Vitaly Kuznetsov wrote: >> This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_ESR, >> KVM_CAP_MSR_PLATFORM_INFO and KVM_CAP_HYPERV_SEND_IPI. >> >> Signed-off-by: Vitaly Kuznetsov >> ---

Re: [Qemu-devel] [PATCH 1/2] linux-headers: update to pre-4.20 (kvm/queue)

2018-10-09 Thread Vitaly Kuznetsov
Roman Kagan writes: > On Tue, Oct 09, 2018 at 03:01:12PM +0200, Vitaly Kuznetsov wrote: >> Roman Kagan writes: >> >> > On Mon, Oct 08, 2018 at 01:27:25PM +0200, Vitaly Kuznetsov wrote: >> >> This brings us three new defines: KVM_CAP_ARM_INJECT_SERROR_

[Qemu-devel] [PATCH v2 2/2] i386/kvm: add support for Hyper-V IPI send

2018-10-09 Thread Vitaly Kuznetsov
Hyper-V PV IPI support is merged to KVM, enable the feature in Qemu. When enabled, this allows Windows guests to send IPIs to other vCPUs with a single hypercall even when there are >64 vCPUs in the request. Signed-off-by: Vitaly Kuznetsov Reviewed-by: Roman Kagan --- target/i386/cp

[Qemu-devel] [PATCH] i386: Enable NPT and NRIPSAVE for AMD CPUs

2019-01-03 Thread Vitaly Kuznetsov
and EPYC/EPYC-IBPB cpu models. Signed-off-by: Vitaly Kuznetsov --- target/i386/cpu.c | 8 1 file changed, 8 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 677a3bd5fb..eb8f9079a6 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -2766,6 +2766,8 @@ static

[Qemu-devel] [PATCH v2] i386: Enable NPT and NRIPSAVE for AMD CPUs

2019-01-21 Thread Vitaly Kuznetsov
and EPYC/EPYC-IBPB cpu models. Signed-off-by: Vitaly Kuznetsov --- Changes since v1: - add npt=off,nrip-save=off to pc_compat_3_1 [Eduardo Habkost] --- hw/i386/pc.c | 8 target/i386/cpu.c | 8 2 files changed, 16 insertions(+) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index

[Qemu-devel] [PATCH RFC] i386: Enable NPT and NRIPSAVE for Epyc CPUs

2018-12-21 Thread Vitaly Kuznetsov
Epyc CPUs support NPT and NRIPSAVE features and KVM exposes these when present. Add them to EPYC and EPYC-IBPB cpu models. Signed-off-by: Vitaly Kuznetsov --- - RFC part: I'm not sure when these features first appeared, we may want to modify some Opteron_* models too. --- target/i386/cpu.c

Re: [Qemu-devel] [PATCH] i386/kvm: expose HV_CPUID_ENLIGHTMENT_INFO.EAX and HV_CPUID_NESTED_FEATURES.EAX as feature words

2018-12-21 Thread Vitaly Kuznetsov
Eduardo Habkost writes: > On Wed, Dec 19, 2018 at 06:25:06PM +0100, Vitaly Kuznetsov wrote: >> Eduardo Habkost writes: >> >> > On Mon, Dec 03, 2018 at 03:17:06PM +0100, Vitaly Kuznetsov wrote: >> >> Eduardo Habkost writes: >> > [...] >>

[Qemu-devel] [PATCH] i386/kvm: add a comment explaining why .feat_names are commented out for Hyper-V feature bits

2018-12-21 Thread Vitaly Kuznetsov
Hyper-V .feat_names are, unlike hardware features, commented out and it is not obvious why we do that. Document the current status quo. Signed-off-by: Vitaly Kuznetsov --- target/i386/cpu.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index

Re: [Qemu-devel] [PATCH RFC] i386: Enable NPT and NRIPSAVE for Epyc CPUs

2018-12-21 Thread Vitaly Kuznetsov
Vitaly Kuznetsov writes: > Epyc CPUs support NPT and NRIPSAVE features and KVM exposes these when > present. Add them to EPYC and EPYC-IBPB cpu models. > > Signed-off-by: Vitaly Kuznetsov > --- > - RFC part: I'm not sure when these features first appeared, we may want

Re: [Qemu-devel] [PATCH] i386/kvm: expose HV_CPUID_ENLIGHTMENT_INFO.EAX and HV_CPUID_NESTED_FEATURES.EAX as feature words

2018-12-05 Thread Vitaly Kuznetsov
Eduardo Habkost writes: >>[...] Some time ago when merging direct mode stimers for KVM >> Paolo suggested we stop adding capabilities to KVM for each individulat >> feature and replace them with something like KVM_GET_SUPPORTED_HV_CPUID >> ioctl returning all Hyper-V related feature

Re: [Qemu-devel] [PATCH] i386/kvm: expose HV_CPUID_ENLIGHTMENT_INFO.EAX and HV_CPUID_NESTED_FEATURES.EAX as feature words

2018-12-03 Thread Vitaly Kuznetsov
Eduardo Habkost writes: > On Thu, Nov 29, 2018 at 12:51:55PM +0100, Vitaly Kuznetsov wrote: >> Paolo Bonzini writes: >> >> > On 26/11/18 14:59, Vitaly Kuznetsov wrote: >> >> It was found that QMP users of QEMU (e.g. libvirt) may need

[Qemu-devel] [PATCH v2] i386/kvm: expose HV_CPUID_ENLIGHTMENT_INFO.EAX and HV_CPUID_NESTED_FEATURES.EAX as feature words

2018-12-03 Thread Vitaly Kuznetsov
-by: Vitaly Kuznetsov Reviewed-by: Roman Kagan --- Changes since v1: - Add a comment explaining why .feat_names are currently commented out for Hyper-V feature words. [Paolo Bonzini] - Add Roman's R-b tag. --- target/i386/cpu.c | 37 + target/i386/cpu.h | 2 ++ target/i386

Re: [Qemu-devel] [PATCH] i386/kvm: expose HV_CPUID_ENLIGHTMENT_INFO.EAX and HV_CPUID_NESTED_FEATURES.EAX as feature words

2018-11-29 Thread Vitaly Kuznetsov
Paolo Bonzini writes: > On 26/11/18 14:59, Vitaly Kuznetsov wrote: >> It was found that QMP users of QEMU (e.g. libvirt) may need >> HV_CPUID_ENLIGHTMENT_INFO.EAX/HV_CPUID_NESTED_FEATURES.EAX information. In >> particular, 'hv_tlbflush' and 'hv_evmcs' enlightenm

[Qemu-devel] [PATCH] i386/kvm: expose HV_CPUID_ENLIGHTMENT_INFO.EAX and HV_CPUID_NESTED_FEATURES.EAX as feature words

2018-11-26 Thread Vitaly Kuznetsov
: convenience (we don't need to export it from hyperv_handle_properties() and as future-proof for Enlightened MSR-Bitmap, PV EPT invalidation and direct virtual flush features. Signed-off-by: Vitaly Kuznetsov --- target/i386/cpu.c | 30 + target/i386/cpu.h | 2 ++ target/i386

Re: [Qemu-devel] [PATCH] i386/kvm: expose HV_CPUID_ENLIGHTMENT_INFO.EAX and HV_CPUID_NESTED_FEATURES.EAX as feature words

2019-01-14 Thread Vitaly Kuznetsov
Vitaly Kuznetsov writes: > Eduardo Habkost writes: > >> On Wed, Dec 19, 2018 at 06:25:06PM +0100, Vitaly Kuznetsov wrote: >>> Eduardo Habkost writes: >>> >>> > On Mon, Dec 03, 2018 at 03:17:06PM +0100, Vitaly Kuznetsov wrote: >>> >&g

Re: [Qemu-devel] [PATCH] i386/kvm: expose HV_CPUID_ENLIGHTMENT_INFO.EAX and HV_CPUID_NESTED_FEATURES.EAX as feature words

2018-12-19 Thread Vitaly Kuznetsov
Eduardo Habkost writes: > On Mon, Dec 03, 2018 at 03:17:06PM +0100, Vitaly Kuznetsov wrote: >> Eduardo Habkost writes: > [...] >> > But note that we might still be able to move the existing >> > "hyperv_*" features to feature_word_info[].feat_names. We j

Re: [Qemu-devel] [PATCH RFC 4/8] i386/kvm: Implement 'hv-all' pass-through mode

2019-01-28 Thread Vitaly Kuznetsov
Roman Kagan writes: > On Fri, Jan 25, 2019 at 02:46:42PM +0100, Vitaly Kuznetsov wrote: >> Roman Kagan writes: >> >> > On Fri, Jan 25, 2019 at 12:41:51PM +0100, Vitaly Kuznetsov wrote: >> >> In many case we just want to give Windows guests all currently su

[Qemu-devel] [PATCH v2] ioapic: allow buggy guests mishandling level-triggered interrupts to make progress

2019-04-02 Thread Vitaly Kuznetsov
ngeoi broadcast") which describes a very similar issue. Steal the idea from the above mentioned commit for IOAPIC implementation in QEMU. SUCCESSIVE_IRQ_MAX_COUNT, delay and the comment are borrowed as well. Signed-off-by: Vitaly Kuznetsov --- Changes since v1: - timer_mod() -> timer_m

[Qemu-devel] [PATCH 6/8] i386/kvm: hv-stimer requires hv-time and hv-synic

2019-03-29 Thread Vitaly Kuznetsov
Synthetic timers operate in hv-time time and Windows won't use these without SynIC. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 9edf76e473..524ee28e9c 100644 --- a/target/i386/kvm.c

Re: [Qemu-devel] [PATCH 4/8] i386/kvm: implement 'hv-all' pass-through mode

2019-03-29 Thread Vitaly Kuznetsov
"Dr. David Alan Gilbert" writes: > Yep, that's probably safest; although if you recorded the features used > in the migration stream you could check for those on the destination and > if they mismatch complain then. > There is no clear use-case for hv-all other than development at this moment;

[Qemu-devel] [PATCH 7/8] i386/kvm: hv-tlbflush/ipi require hv-vpindex

2019-03-29 Thread Vitaly Kuznetsov
The corresponding hypercalls require using VP indexes. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 524ee28e9c..976c1d570f 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c

[Qemu-devel] [PATCH 4/8] i386/kvm: implement 'hv-all' pass-through mode

2019-03-29 Thread Vitaly Kuznetsov
ant to check them later (and we actually do for hv_runtime, hv_synic,...). 'hv-all' is a development only feature, a migration blocker is added to prevent issues while migrating between hosts with different feature sets. Signed-off-by: Vitaly Kuznetsov --- docs/hyperv.txt | 10 target/i386/cp

[Qemu-devel] [PATCH 1/8] i386/kvm: add support for KVM_GET_SUPPORTED_HV_CPUID

2019-03-29 Thread Vitaly Kuznetsov
structure defining Hyper-V features, get_supported_hv_cpuid()/ get_supported_hv_cpuid_legacy() returning the supported CPUID set and a bit over-engineered hv_cpuid_check_and_set() which we will also be used to set cpu->hyperv_* properties for 'hv-all' mode. Signed-off-by: Vitaly Kuznetsov --- tar

[Qemu-devel] [PATCH 3/8] i386/kvm: document existing Hyper-V enlightenments

2019-03-29 Thread Vitaly Kuznetsov
Currently, there is no doc describing hv-* CPU flags, people are encouraged to get the information from Microsoft Hyper-V Top Level Functional specification (TLFS). There is, however, a bit of QEMU specifics. Signed-off-by: Vitaly Kuznetsov --- docs/hyperv.txt | 180

[Qemu-devel] [PATCH 8/8] i386/kvm: add support for Direct Mode for Hyper-V synthetic timers

2019-03-29 Thread Vitaly Kuznetsov
Hyper-V on KVM can only use Synthetic timers with Direct Mode (opting for an interrupt instead of VMBus message). This new capability is only announced in KVM_GET_SUPPORTED_HV_CPUID. Signed-off-by: Vitaly Kuznetsov --- docs/hyperv.txt| 10 ++ target/i386/cpu.c | 1

[Qemu-devel] [PATCH 0/8] i386/kvm/hyper-v: refactor and implement 'hv-stimer-direct' and 'hv-all' enlightenments

2019-03-29 Thread Vitaly Kuznetsov
enlightenment is only exposed through KVM_GET_SUPPORTED_HV_CPUID ioctl. Take the opportunity and re-implement the way we handle Hyper-V enlightenments in QEMU, add support for hv-stimer-direct and 'hv-all' pass-through mode, add missing dependencies between enlightenments. Vitaly Kuznetsov (8): i386/kvm: add

[Qemu-devel] [PATCH 5/8] i386/kvm: hv-evmcs requires hv-vapic

2019-03-29 Thread Vitaly Kuznetsov
Enlightened VMCS is enabled by writing to a field in VP assist page and these require virtual APIC. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index af45241adb..9edf76e473

[Qemu-devel] [PATCH 2/8] i386/kvm: move Hyper-V CPUID filling to hyperv_handle_properties()

2019-03-29 Thread Vitaly Kuznetsov
Let's consolidate Hyper-V features handling in hyperv_handle_properties(). The change is necessary to support pass-through 'hv-all' mode as we'll be just copying CPUIDs from KVM instead of filling them in. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 163

Re: [Qemu-devel] [PATCH 3/8] i386/kvm: document existing Hyper-V enlightenments

2019-04-05 Thread Vitaly Kuznetsov
Roman Kagan writes: > On Fri, Mar 29, 2019 at 03:18:27PM +0100, Vitaly Kuznetsov wrote: >> Currently, there is no doc describing hv-* CPU flags, people are >> encouraged to get the information from Microsoft Hyper-V Top Level >> Functional specification (TLFS). There is, h

Re: [Qemu-devel] [PATCH 4/8] i386/kvm: implement 'hv-all' pass-through mode

2019-04-05 Thread Vitaly Kuznetsov
Roman Kagan writes: > On Fri, Mar 29, 2019 at 03:18:28PM +0100, Vitaly Kuznetsov wrote: >> In many case we just want to give Windows guests all currently supported >> Hyper-V enlightenments and that's where this new mode may come handy. We >> pass thro

Re: [Qemu-devel] [PATCH] ioapic: allow buggy guests mishandling level-triggered interrupts to make progress

2019-04-01 Thread Vitaly Kuznetsov
Liran Alon writes: >> On 1 Apr 2019, at 16:36, Vitaly Kuznetsov wrote: >> >> It was found that Hyper-V 2016 on KVM in some configurations (q35 machine + >> piix4-usb-uhci) hangs on boot. Trace analysis led us to the conclusion that >> it is mishandling level-trig

Re: [Qemu-devel] [PATCH] ioapic: allow buggy guests mishandling level-triggered interrupts to make progress

2019-04-01 Thread Vitaly Kuznetsov
Paolo Bonzini writes: > On 01/04/19 15:36, Vitaly Kuznetsov wrote: ... >> static void ioapic_set_irq(void *opaque, int vector, int level) >> { >> IOAPICCommonState *s = opaque; >> @@ -227,7 +236,28 @@ void ioapic_eoi_broadcast(int vector) >>

Re: [Qemu-devel] [PATCH] ioapic: allow buggy guests mishandling level-triggered interrupts to make progress

2019-04-01 Thread Vitaly Kuznetsov
Liran Alon writes: >> On 1 Apr 2019, at 18:58, Vitaly Kuznetsov wrote: >> >> Liran Alon writes: >> >>>> On 1 Apr 2019, at 16:36, Vitaly Kuznetsov wrote: >>>> >>>> It was found that Hyper-V 2016 on KVM in some configurations (q35

[Qemu-devel] [PATCH] ioapic: allow buggy guests mishandling level-triggered interrupts to make progress

2019-04-01 Thread Vitaly Kuznetsov
y irq delivery duringeoi broadcast") which describes a very similar issue. Steal the idea from the above mentioned commit for IOAPIC implementation in QEMU. SUCCESSIVE_IRQ_MAX_COUNT, delay and the comment are borrowed as well. Signed-off-by: Vitaly Kuznetsov --- hw/intc/ioapic.c

[Qemu-devel] [Bug 1813165] Re: KVM internal error. Suberror: 1 emulation failure

2019-02-20 Thread Vitaly Kuznetsov
Thank you David, I see the issue now. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1813165 Title: KVM internal error. Suberror: 1 emulation failure Status in QEMU: New Bug description:

[Qemu-devel] [Bug 1813165] Re: KVM internal error. Suberror: 1 emulation failure

2019-02-20 Thread Vitaly Kuznetsov
Thomas, Albert, David, I'm having hard times trying to reproduce the issue in my environment; could you please provide your qemu command lines for both L0 and L1? It would also be great if you could try to come up with some 'minimal' configuration (my guess is that in L1 having just

[Qemu-devel] [Bug 1813165] Re: KVM internal error. Suberror: 1 emulation failure

2019-02-22 Thread Vitaly Kuznetsov
I sent a patch which is supposed to fix the issue: https://marc.info/?l=kvm=155085391830663=2 it would be great if someone could give it a spin! -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1813165

[Qemu-devel] [Bug 1813165] Re: KVM internal error. Suberror: 1 emulation failure

2019-02-18 Thread Vitaly Kuznetsov
Ack, thanks for the bisect! It seems something was overlooked when we did host/guest mmu split. I'll try to investigate. -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1813165 Title: KVM internal

Re: [Qemu-devel] [PATCH RFC 4/8] i386/kvm: Implement 'hv-all' pass-through mode

2019-01-29 Thread Vitaly Kuznetsov
Eduardo Habkost writes: > > If libvirt is involved, it's much simpler and safer to use > something like , which generates a > migration-safe CPU configuration based on the current host. Live > migration support with "-cpu host" is only useful for experiments > and carefully controlled

Re: [Qemu-devel] [PATCH RFC 4/8] i386/kvm: Implement 'hv-all' pass-through mode

2019-01-29 Thread Vitaly Kuznetsov
"Dr. David Alan Gilbert" writes: > I'm not sure what the equivalent bear traps are in the Hyper-V world, > but I'd be surprised if there weren't any; for example what happens > when someone upgrades one of their hosts to some minor version that > adds/removes a feature? Here we're talking about

[Qemu-devel] [PATCH RFC 3/8] i386/kvm: move Hyper-V CPUID filling to hyperv_handle_properties()

2019-01-25 Thread Vitaly Kuznetsov
Let's consolidate Hyper-V features handling in hyperv_handle_properties(). The change is necessary to support pass-through 'hv-all' mode as we'll be just copying CPUIDs from KVM instead of filling them in. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 163

[Qemu-devel] [PATCH RFC 4/8] i386/kvm: Implement 'hv-all' pass-through mode

2019-01-25 Thread Vitaly Kuznetsov
ant to check them later (and we actually do for hv_runtime, hv_synic,...). Signed-off-by: Vitaly Kuznetsov --- target/i386/cpu.c | 1 + target/i386/cpu.h | 1 + target/i386/kvm.c | 133 -- 3 files changed, 107 insertions(+), 28 deletions(-) diff --

[Qemu-devel] [PATCH RFC 7/8] i386/kvm: hv-tlbflush/ipi require hv-vpindex

2019-01-25 Thread Vitaly Kuznetsov
The corresponding hypercalls require using VP indexes. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 7461bf05dd..14d74ca9c7 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c

[Qemu-devel] [PATCH RFC 1/8] Update linux headers (5.0-rc2)

2019-01-25 Thread Vitaly Kuznetsov
Signed-off-by: Vitaly Kuznetsov --- include/standard-headers/drm/drm_fourcc.h | 63 + include/standard-headers/linux/ethtool.h | 19 +- .../linux/input-event-codes.h | 19 + include/standard-headers/linux/pci_regs.h |1 + .../standard-headers/linux

[Qemu-devel] [PATCH RFC 2/8] i386/kvm: add support for KVM_GET_SUPPORTED_HV_CPUID

2019-01-25 Thread Vitaly Kuznetsov
structure defining Hyper-V features, get_supported_hv_cpuid()/ get_supported_hv_cpuid_legacy() returning the supported CPUID set and a bit over-engineered hv_cpuid_check_and_set() which we will also be used to set cpu->hyperv_* properties for 'hv-all' mode. Signed-off-by: Vitaly Kuznetsov --- tar

[Qemu-devel] [PATCH RFC 8/8] i386/kvm: add support for Direct Mode for Hyper-V synthetic timers

2019-01-25 Thread Vitaly Kuznetsov
Hyper-V on KVM can only use Synthetic timers with Direct Mode (opting for an interrupt instead of VMBus message). This new capability is only announced in KVM_GET_SUPPORTED_HV_CPUID. Signed-off-by: Vitaly Kuznetsov --- target/i386/cpu.c | 1 + target/i386/cpu.h | 1 + target

[Qemu-devel] [PATCH RFC 0/8] i386/kvm/hyper-v: refactor and implement 'hv-stimer-direct' and 'hv-all' enlightenments

2019-01-25 Thread Vitaly Kuznetsov
, vendor,... but we take CPUIDs passed by KVM 'as-is'. Vitaly Kuznetsov (8): Update linux headers (5.0-rc2) i386/kvm: add support for KVM_GET_SUPPORTED_HV_CPUID i386/kvm: move Hyper-V CPUID filling to hyperv_handle_properties() i386/kvm: Implement 'hv-all' pass-through mode i386/kvm: hv-evmcs

[Qemu-devel] [PATCH RFC 6/8] i386/kvm: hv-stimer requires hv-time and hv-synic

2019-01-25 Thread Vitaly Kuznetsov
Synthetic timers operate in hv-time time and Windows won't use these without SynIC. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 674c5dc185..7461bf05dd 100644 --- a/target/i386/kvm.c

[Qemu-devel] [PATCH RFC 5/8] i386/kvm: hv-evmcs requires hv-vapic

2019-01-25 Thread Vitaly Kuznetsov
Enlightened VMCS is enabled by writing to a field in VP assist page and these require virtual APIC. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index b373b4ac06..674c5dc185

Re: [Qemu-devel] [PATCH RFC 4/8] i386/kvm: Implement 'hv-all' pass-through mode

2019-01-25 Thread Vitaly Kuznetsov
Roman Kagan writes: > On Fri, Jan 25, 2019 at 12:41:51PM +0100, Vitaly Kuznetsov wrote: >> In many case we just want to give Windows guests all currently supported >> Hyper-V enlightenments and that's where this new mode may come handy. We >> pass thro

Re: [Qemu-devel] [PATCH RFC 0/8] i386/kvm/hyper-v: refactor and implement 'hv-stimer-direct' and 'hv-all' enlightenments

2019-02-02 Thread Vitaly Kuznetsov
no-re...@patchew.org writes: > === OUTPUT BEGIN === > 1/8 Checking commit 345a0718e21e (Update linux headers (5.0-rc2)) > WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? > #1646: > new file mode 100644 > > ERROR: code indent should never use tabs > #3980: FILE:

[Qemu-devel] [PATCH v2 6/9] i386/kvm: hv-stimer requires hv-time and hv-synic

2019-05-17 Thread Vitaly Kuznetsov
Synthetic timers operate in hv-time time and Windows won't use these without SynIC. Add .dependencies field to kvm_hyperv_properties[] and a generic mechanism to check dependencies between features. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 23 +++ 1 file

[Qemu-devel] [PATCH v2 0/9] i386/kvm/hyper-v: refactor and implement 'hv-stimer-direct' and 'hv-passthrough' enlightenments

2019-05-17 Thread Vitaly Kuznetsov
synthetic timers enlightenment is only exposed through KVM_GET_SUPPORTED_HV_CPUID ioctl. Take the opportunity and re-implement the way we handle Hyper-V enlightenments in QEMU, add support for hv-stimer-direct and 'hv-all' pass-through mode, add missing dependencies between enlightenments. Vitaly

[Qemu-devel] [PATCH v2 7/9] i386/kvm: hv-tlbflush/ipi require hv-vpindex

2019-05-17 Thread Vitaly Kuznetsov
The corresponding hypercalls require using VP indexes. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index d8b83031a5..7fc97b749e 100644 --- a/target/i386/kvm.c +++ b/target

[Qemu-devel] [PATCH v2 3/9] i386/kvm: move Hyper-V CPUID filling to hyperv_handle_properties()

2019-05-17 Thread Vitaly Kuznetsov
Let's consolidate Hyper-V features handling in hyperv_handle_properties(). The change is necessary to support 'hv-passthrough' mode as we'll be just copying CPUIDs from KVM instead of filling them in. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 163

[Qemu-devel] [PATCH v2 2/9] i386/kvm: add support for KVM_GET_SUPPORTED_HV_CPUID

2019-05-17 Thread Vitaly Kuznetsov
structure defining Hyper-V features, get_supported_hv_cpuid()/ get_supported_hv_cpuid_legacy() returning the supported CPUID set and a bit over-engineered hv_cpuid_check_and_set() which we will also be used to set cpu->hyperv_* properties for 'hv-all' mode. Signed-off-by: Vitaly Kuznetsov --- tar

[Qemu-devel] [PATCH v2 1/9] i386/kvm: convert hyperv enlightenments properties from bools to bits

2019-05-17 Thread Vitaly Kuznetsov
Representing Hyper-V properties as bits will allow us to check features and dependencies between them in a natural way. Suggested-by: Roman Kagan Signed-off-by: Vitaly Kuznetsov --- hw/i386/pc.c | 3 +- target/i386/cpu.c | 44 +++ target/i386/cpu.h | 37

[Qemu-devel] [PATCH v2 5/9] i386/kvm: implement 'hv-passthrough' mode

2019-05-17 Thread Vitaly Kuznetsov
ant to check them later (and we actually do for hv_runtime, hv_synic,...). 'hv-passthrough' is a development only feature, a migration blocker is added to prevent issues while migrating between hosts with different feature sets. Signed-off-by: Vitaly Kuznetsov --- docs/hyperv.txt | 10 ++ tar

[Qemu-devel] [PATCH v2 8/9] i386/kvm: hv-evmcs requires hv-vapic

2019-05-17 Thread Vitaly Kuznetsov
Enlightened VMCS is enabled by writing to a field in VP assist page and these require virtual APIC. Signed-off-by: Vitaly Kuznetsov --- target/i386/kvm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 7fc97b749e..7ae2f63f72

[Qemu-devel] [PATCH v2 4/9] i386/kvm: document existing Hyper-V enlightenments

2019-05-17 Thread Vitaly Kuznetsov
Currently, there is no doc describing hv-* CPU flags, people are encouraged to get the information from Microsoft Hyper-V Top Level Functional specification (TLFS). There is, however, a bit of QEMU specifics. Signed-off-by: Vitaly Kuznetsov --- docs/hyperv.txt | 181

[Qemu-devel] [PATCH v2 9/9] i386/kvm: add support for Direct Mode for Hyper-V synthetic timers

2019-05-17 Thread Vitaly Kuznetsov
Hyper-V on KVM can only use Synthetic timers with Direct Mode (opting for an interrupt instead of VMBus message). This new capability is only announced in KVM_GET_SUPPORTED_HV_CPUID. Signed-off-by: Vitaly Kuznetsov --- docs/hyperv.txt| 10 ++ target/i386/cpu.c | 2

  1   2   3   4   5   6   >